Function at 0x46027b
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x6c
push ebx
mov eax, edx
mov edx, ecx
mov dword [esp + 0x18], eax
mov dword [esp + 0x14], edx
push esi
push edi
test eax, eax
je 0x46093a
mov ebx, dword [ebp + 0x10]
xor eax, eax
cmp dword [ebx + 0x1c], eax
jne 0x460858
cmp byte [ebx + 0xc], al
jne 0x4607f0
mov byte [ebx + 0xc], 1
cmp dword [ebx + 4], eax
je 0x4607f0
push dword [ebx + 4]
lea ecx, [esp + 0x50]
mov byte [esp + 0x13], al
push dword [ebx]
call fcn.0044f480
mov edi, dword [ebx]
xor edx, edx
mov esi, edx
mov dword [esp + 0x10], edx
mov eax, edx
mov dword [esp + 0x40], edx
mov dword [esp + 0x44], edx
mov dword [esp + 0x48], edx
mov dword [esp + 0x14], edx
mov byte [esp + 0x18], dl
mov dword [esp + 0x34], esi
mov dword [esp + 0x38], edx
mov dword [esp + 0x3c], edx
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], edx
mov dword [esp + 0x30], edx
cmp word [edi], dx
je 0x46078e
jmp 0x460318
mov eax, dword [esp + 0x28]
mov dword [esp + 0x38], edx
test esi, esi
je 0x460325
xor ecx, ecx
mov word [esi], cx
mov dword [esp + 0x2c], edx
test eax, eax
je 0x460332
xor ecx, ecx
mov word [eax], cx
movzx eax, word [edi]
mov edx, eax
test ax, ax
je 0x460361
push 0x20
mov ecx, eax
pop ebx
movzx edx, cx
cmp cx, bx
ja 0x46035e
push edi
call dword [sym.imp.USER32.dll_CharNextW]
mov edi, eax
movzx eax, word [edi]
mov ecx, eax
mov edx, eax
test ax, ax
jne 0x460341
mov ebx, dword [ebp + 0x10]
movzx ecx, dx
test dx, dx
je 0x4603bb
push 0x20
movzx edx, dx
pop ebx
push 0x3d
pop eax
movzx ecx, dx
cmp dx, ax
je 0x4603b4
movzx ecx, dx
cmp dx, bx
jbe 0x4603b4
push edi
call dword [sym.imp.USER32.dll_CharNextW]
mov esi, eax
jmp 0x4603a4
mov dword [esp + 0x24], eax
lea ecx, [esp + 0x34]
push 1
lea eax, [esp + 0x28]
push eax
call fcn.0044f4e0
add edi, 2
movzx eax, word [edi]
cmp edi, esi
jb 0x46038d
mov edx, eax
mov ecx, eax
test ax, ax
jne 0x46036f
mov ebx, dword [ebp + 0x10]
mov esi, dword [esp + 0x34]
movzx edx, cx
test cx, cx
je 0x4603e9
push 0x20
movzx ecx, cx
pop ebx
movzx edx, cx
cmp cx, bx
ja 0x4603e6
push edi
call dword [sym.imp.USER32.dll_CharNextW]
mov edi, eax
movzx eax, word [edi]
mov ecx, eax
mov edx, eax
test ax, ax
jne 0x4603c9
mov ebx, dword [ebp + 0x10]
push 0x3d
pop eax
add edi, 2
cmp dx, ax
jne 0x46078a
movzx eax, word [edi]
mov ecx, eax
test ax, ax
je 0x460427
push 0x20
mov edx, eax
pop ebx
movzx ecx, dx
cmp dx, bx
ja 0x460424
push edi
call dword [sym.imp.USER32.dll_CharNextW]
mov edi, eax
movzx eax, word [edi]
mov edx, eax
mov ecx, eax
test ax, ax
jne 0x460407
mov ebx, dword [ebp + 0x10]
push 0x27
pop eax
add edi, 2
cmp cx, ax
jne 0x46078a
movzx eax, word [edi]
mov edx, eax
test ax, ax
je 0x46048f
push 0x27
mov ecx, eax
pop esi
movzx edx, cx
cmp cx, si
je 0x460488
push edi
call dword [sym.imp.USER32.dll_CharNextW]
mov dword [esp + 0x24], eax
cmp edi, eax
jae 0x46047c
mov ebx, eax
movzx eax, word [edi]
lea ecx, [esp + 0x28]
mov dword [esp + 0x24], eax
lea eax, [esp + 0x24]
push 1
push eax
call fcn.0044f4e0
add edi, 2
cmp edi, ebx
jb 0x46045e
movzx eax, word [edi]
mov ecx, eax
mov edx, eax
test ax, ax
jne 0x460445
mov ebx, dword [ebp + 0x10]
mov esi, dword [esp + 0x34]
push 0x27
pop eax
cmp dx, ax
jne 0x46078a
cmp dword [esp + 0x2c], 0
je 0x46076c
push 0x49a614
push esi
call dword [sym.imp.SHLWAPI.dll_StrCmpW]
test eax, eax
jne 0x4604bc
lea ecx, [esp + 0x4c]
jmp 0x4604e7
push 0x4a05b0
push esi
call dword [sym.imp.SHLWAPI.dll_StrCmpW]
test eax, eax
jne 0x4604d3
mov byte [esp + 0xf], 1
jmp 0x4604b6
push str.restype
push esi
call dword [sym.imp.SHLWAPI.dll_StrCmpW]
test eax, eax
jne 0x4604f5
lea ecx, [esp + 0x40]
push dword [esp + 0x28]
call fcn.0044f556
jmp 0x46076c
push str.dest
push esi
call dword [sym.imp.SHLWAPI.dll_StrCmpW]
test eax, eax
jne 0x46057a
push 0xa
lea eax, [esp + 0x14]
push eax
push dword [esp + 0x30]
call dword [sym.imp.msvcrt.dll_wcstol]
add esp, 0xc
mov dword [ebx + 0x20], eax
lea eax, [esp + 0x10]
push 0xa
push eax
mov eax, dword [esp + 0x18]
add eax, 2
push eax
call dword [sym.imp.msvcrt.dll_wcstol]
add esp, 0xc
mov dword [ebx + 0x24], eax
lea eax, [esp + 0x10]
push 0xa
push eax
mov eax, dword [esp + 0x18]
add eax, 2
push eax
call dword [sym.imp.msvcrt.dll_wcstol]
add esp, 0xc
mov dword [ebx + 0x28], eax
lea eax, [esp + 0x10]
push 0xa
push eax
mov eax, dword [esp + 0x18]
add eax, 2
push eax
call dword [sym.imp.msvcrt.dll_wcstol]
add esp, 0xc
mov dword [ebx + 0x2c], eax
lea ecx, [ebx + 0x20]
call fcn.00458ece
jmp 0x46076c
push str.source
push esi
call dword [sym.imp.SHLWAPI.dll_StrCmpW]
test eax, eax
jne 0x4605ed
mov esi, dword [sym.imp.msvcrt.dll_wcstol]
lea eax, [esp + 0x10]
push 0xa
push eax
push dword [esp + 0x30]
call esi
add esp, 0xc
mov dword [ebx + 0x30], eax
lea eax, [esp + 0x10]
push 0xa
push eax
mov eax, dword [esp + 0x18]
add eax, 2
push eax
call esi
add esp, 0xc
mov dword [ebx + 0x34], eax
lea eax, [esp + 0x10]
push 0xa
push eax
mov eax, dword [esp + 0x18]
add eax, 2
push eax
call esi
add esp, 0xc
mov dword [ebx + 0x38], eax
lea eax, [esp + 0x10]
push 0xa
push eax
mov eax, dword [esp + 0x18]
add eax, 2
push eax
call esi
add esp, 0xc
mov dword [ebx + 0x3c], eax
jmp 0x46076c
push str.corner
push esi
call dword [sym.imp.SHLWAPI.dll_StrCmpW]
test eax, eax
jne 0x460660
mov esi, dword [sym.imp.msvcrt.dll_wcstol]
lea eax, [esp + 0x10]
push 0xa
push eax
push dword [esp + 0x30]
call esi
add esp, 0xc
mov dword [ebx + 0x40], eax
lea eax, [esp + 0x10]
push 0xa
push eax
mov eax, dword [esp + 0x18]
add eax, 2
push eax
call esi
add esp, 0xc
mov dword [ebx + 0x44], eax
lea eax, [esp + 0x10]
push 0xa
push eax
mov eax, dword [esp + 0x18]
add eax, 2
push eax
call esi
add esp, 0xc
mov dword [ebx + 0x48], eax
lea eax, [esp + 0x10]
push 0xa
push eax
mov eax, dword [esp + 0x18]
add eax, 2
push eax
call esi
add esp, 0xc
mov dword [ebx + 0x4c], eax
jmp 0x46076c
push str.mask
push esi
call dword [sym.imp.SHLWAPI.dll_StrCmpW]
test eax, eax
jne 0x460697
mov eax, dword [esp + 0x28]
lea ecx, [esp + 0x10]
push 0x10
push ecx
cmp word [eax], 0x23
jne 0x460684
add eax, 2
push eax
call dword [sym.imp.msvcrt.dll_wcstoul]
add esp, 0xc
mov dword [esp + 0x14], eax
jmp 0x46076c
push str.fade
push esi
call dword [sym.imp.SHLWAPI.dll_StrCmpW]
test eax, eax
jne 0x4606c3
push 0xa
lea eax, [esp + 0x14]
push eax
push dword [esp + 0x30]
call dword [sym.imp.msvcrt.dll_wcstoul]
add esp, 0xc
mov byte [ebx + 0x50], al
jmp 0x46076c
push str.hole
push esi
call dword [sym.imp.SHLWAPI.dll_StrCmpW]
test eax, eax
jne 0x4606ed
push str.true
push dword [esp + 0x2c]
call dword [sym.imp.msvcrt.dll_wcscmp]
neg eax
sbb al, al
inc al
mov byte [ebx + 0x51], al
jmp 0x46076a
push str.xtiled
push esi
call dword [sym.imp.SHLWAPI.dll_StrCmpW]
test eax, eax
jne 0x460717
push str.true
push dword [esp + 0x2c]
call dword [sym.imp.msvcrt.dll_wcscmp]
neg eax
sbb al, al
inc al
mov byte [ebx + 0x52], al
jmp 0x46076a
push str.ytiled
push esi
call dword [sym.imp.SHLWAPI.dll_StrCmpW]
test eax, eax
jne 0x460741
push str.true
push dword [esp + 0x2c]
call dword [sym.imp.msvcrt.dll_wcscmp]
neg eax
sbb al, al
inc al
mov byte [ebx + 0x53], al
jmp 0x46076a
push 0x4a060c
push esi
call dword [sym.imp.SHLWAPI.dll_StrCmpW]
test eax, eax
jne 0x46076c
push str.true
push dword [esp + 0x2c]
call dword [sym.imp.msvcrt.dll_wcscmp]
neg eax
sbb al, al
inc al
mov byte [esp + 0x20], al
pop ecx
pop ecx
movzx eax, word [edi + 2]
add edi, 4
push 0x20
pop ecx
cmp ax, cx
jne 0x46078a
mov esi, dword [esp + 0x34]
xor edx, edx
cmp word [edi], dx
jne 0x460314
mov esi, dword [esp + 0x34]
mov edi, dword [esp + 0x4c]
lea ecx, [ebx + 0x10]
push edi
call fcn.0044f556
cmp byte [esp + 0xf], 0
push dword [esp + 0x18]
mov ecx, dword [esp + 0x24]
push dword [esp + 0x18]
jne 0x4607b2
push 0
jmp 0x4607b6
push dword [esp + 0x48]
push edi
call fcn.00458c9a
mov ecx, eax
test ecx, ecx
jne 0x4607f7
mov eax, dword [esp + 0x28]
mov ebx, dword [sym.imp.msvcrt.dll_free]
test eax, eax
je 0x4607d4
push eax
call ebx
pop ecx
test esi, esi
je 0x4607dc
push esi
call ebx
pop ecx
mov eax, dword [esp + 0x40]
test eax, eax
je 0x4607e8
push eax
call ebx
pop ecx
test edi, edi
je 0x4607f0
push edi
call ebx
pop ecx
xor al, al
jmp 0x46093c
xor eax, eax
mov dword [ebx + 0x1c], ecx
cmp dword [ebx + 0x30], eax
jne 0x46081c
cmp dword [ebx + 0x38], eax
jne 0x46081c
cmp dword [ebx + 0x34], eax
jne 0x46081c
cmp dword [ebx + 0x3c], eax
jne 0x46081c
mov eax, dword [ecx + 0xc]
mov dword [ebx + 0x38], eax
mov eax, dword [ecx + 0x10]
mov dword [ebx + 0x3c], eax
mov eax, dword [esp + 0x28]
test eax, eax
je 0x46082c
push eax
call dword [sym.imp.msvcrt.dll_free]
pop ecx
test esi, esi
je 0x460838
push esi
call dword [sym.imp.msvcrt.dll_free]
pop ecx
mov eax, dword [esp + 0x40]
test eax, eax
je 0x460848
push eax
call dword [sym.imp.msvcrt.dll_free]
pop ecx
test edi, edi
je 0x460854
push edi
call dword [sym.imp.msvcrt.dll_free]
pop ecx
mov edx, dword [esp + 0x1c]
mov ecx, dword [ebx + 0x1c]
mov eax, dword [ecx + 0xc]
cmp dword [ebx + 0x38], eax
jle 0x460866
mov dword [ebx + 0x38], eax
mov eax, dword [ecx + 0x10]
cmp dword [ebx + 0x3c], eax
jle 0x460871
mov dword [ebx + 0x3c], eax
test edx, edx
je 0x46093a
mov edx, dword [ebp + 8]
lea edi, [esp + 0x58]
mov eax, dword [ebx + 0x20]
mov esi, edx
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
test eax, eax
jne 0x46089c
cmp dword [ebx + 0x24], eax
jne 0x46089c
cmp dword [ebx + 0x28], eax
jne 0x46089c
cmp dword [ebx + 0x2c], eax
je 0x4608d6
add eax, dword [edx]
mov esi, dword [edx + 4]
mov ecx, dword [edx + 8]
mov dword [esp + 0x58], eax
mov eax, dword [ebx + 0x24]
add eax, esi
mov dword [esp + 0x5c], eax
mov eax, dword [ebx + 0x28]
add eax, dword [edx]
mov dword [esp + 0x60], eax
cmp eax, ecx
jle 0x4608c2
mov dword [esp + 0x60], ecx
mov eax, dword [ebx + 0x2c]
mov ecx, dword [edx + 0xc]
add eax, esi
mov dword [esp + 0x64], eax
cmp eax, ecx
jle 0x4608d6
mov dword [esp + 0x64], ecx
mov esi, dword [sym.imp.USER32.dll_IntersectRect]
lea eax, [esp + 0x58]
push edx
push eax
lea eax, [esp + 0x70]
push eax
call esi
test eax, eax
je 0x46093a
push dword [ebp + 0xc]
lea eax, [esp + 0x5c]
push eax
lea eax, [esp + 0x70]
push eax
call esi
test eax, eax
je 0x46093a
movzx eax, byte [ebx + 0x53]
lea ecx, [ebx + 0x30]
mov edx, dword [ebx + 0x1c]
push eax
movzx eax, byte [ebx + 0x52]
push eax
movzx eax, byte [ebx + 0x51]
push eax
movzx eax, byte [ebx + 0x50]
push eax
movzx eax, byte [edx + 0x14]
mov edx, dword [edx]
push eax
lea eax, [ebx + 0x40]
push eax
push ecx
push dword [ebp + 0xc]
lea ecx, [esp + 0x78]
push ecx
mov ecx, dword [esp + 0x40]
call fcn.0045f2dc
add esp, 0x24
mov al, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret