Function at 0x43e5f0
Capabilities:
Check if file exists

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4dc85d
mov eax, dword fs:[0]
push eax
sub esp, 0x4e0
mov eax, dword [0x50bd24]
xor eax, ebp
mov dword [ebp - 0x10], eax
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x44c], ecx
mov dword [ebp - 0x498], 0
mov eax, dword [ebp + 8]
push eax
mov ecx, dword [ebp - 0x44c]
call fcn.004324e0
mov ecx, dword [ebp + 0xc]
push ecx
mov ecx, dword [ebp - 0x44c]
add ecx, 0x84
call fcn.004324e0
mov edx, dword [ebp + 8]
push edx
mov ecx, dword [ebp - 0x44c]
add ecx, 0x108
call fcn.004324e0
lea ecx, [ebp - 0x37c]
call fcn.004321d0
mov dword [ebp - 4], 0
lea ecx, [ebp - 0x2e0]
call fcn.004321d0
mov byte [ebp - 4], 1
mov dword [ebp - 0x450], 0
mov dword [ebp - 0x45c], 0
jmp 0x43e6aa
mov eax, dword [ebp - 0x45c]
add eax, 1
mov dword [ebp - 0x45c], eax
cmp dword [ebp - 0x45c], 2
jge 0x43edea
cmp dword [ebp - 0x45c], 1
jne 0x43e6c6
mov ecx, dword [ebp + 0xc]
mov dword [ebp + 8], ecx
cmp dword [ebp + 8], 0
jne 0x43e6ce
jmp 0x43e69b
mov edx, dword [ebp + 8]
movzx eax, word [edx]
test eax, eax
je 0x43ede5
lea ecx, [ebp - 0x37c]
call fcn.00432b30
lea ecx, [ebp - 0x2e0]
call fcn.00432b30
mov ecx, dword [ebp + 8]
movzx edx, word [ecx]
test edx, edx
jle 0x43e716
mov eax, dword [ebp + 8]
movzx ecx, word [eax]
cmp ecx, 0x20
jg 0x43e716
mov edx, dword [ebp + 8]
push edx
call dword [sym.imp.USER32.dll_CharNextW]
mov dword [ebp + 8], eax
jmp 0x43e6f2
mov eax, dword [ebp + 8]
movzx ecx, word [eax]
test ecx, ecx
je 0x43e77e
mov edx, dword [ebp + 8]
movzx eax, word [edx]
cmp eax, 0x3d
je 0x43e77e
mov ecx, dword [ebp + 8]
movzx edx, word [ecx]
cmp edx, 0x20
jle 0x43e77e
mov eax, dword [ebp + 8]
push eax
call dword [sym.imp.USER32.dll_CharNextW]
mov dword [ebp - 0x4c8], eax
mov ecx, dword [ebp + 8]
cmp ecx, dword [ebp - 0x4c8]
jae 0x43e77c
mov edx, dword [ebp + 8]
mov ax, word [edx]
mov word [ebp - 0x460], ax
movzx ecx, word [ebp - 0x460]
push ecx
lea ecx, [ebp - 0x37c]
call fcn.00432840
mov edx, dword [ebp + 8]
add edx, 2
mov dword [ebp + 8], edx
jmp 0x43e746
jmp 0x43e716
mov eax, dword [ebp + 8]
movzx ecx, word [eax]
test ecx, ecx
jle 0x43e7a2
mov edx, dword [ebp + 8]
movzx eax, word [edx]
cmp eax, 0x20
jg 0x43e7a2
mov ecx, dword [ebp + 8]
push ecx
call dword [sym.imp.USER32.dll_CharNextW]
mov dword [ebp + 8], eax
jmp 0x43e77e
mov edx, dword [ebp + 8]
movzx eax, word [edx]
mov dword [ebp - 0x4c4], eax
mov ecx, dword [ebp + 8]
add ecx, 2
mov dword [ebp + 8], ecx
cmp dword [ebp - 0x4c4], 0x3d
je 0x43e7c5
jmp 0x43ede5
mov edx, dword [ebp + 8]
movzx eax, word [edx]
test eax, eax
jle 0x43e7e9
mov ecx, dword [ebp + 8]
movzx edx, word [ecx]
cmp edx, 0x20
jg 0x43e7e9
mov eax, dword [ebp + 8]
push eax
call dword [sym.imp.USER32.dll_CharNextW]
mov dword [ebp + 8], eax
jmp 0x43e7c5
mov ecx, dword [ebp + 8]
movzx edx, word [ecx]
mov dword [ebp - 0x4bc], edx
mov eax, dword [ebp + 8]
add eax, 2
mov dword [ebp + 8], eax
cmp dword [ebp - 0x4bc], 0x27
je 0x43e80c
jmp 0x43ede5
mov ecx, dword [ebp + 8]
movzx edx, word [ecx]
test edx, edx
je 0x43e869
mov eax, dword [ebp + 8]
movzx ecx, word [eax]
cmp ecx, 0x27
je 0x43e869
mov edx, dword [ebp + 8]
push edx
call dword [sym.imp.USER32.dll_CharNextW]
mov dword [ebp - 0x4d4], eax
mov eax, dword [ebp + 8]
cmp eax, dword [ebp - 0x4d4]
jae 0x43e867
mov ecx, dword [ebp + 8]
mov dx, word [ecx]
mov word [ebp - 0x462], dx
movzx eax, word [ebp - 0x462]
push eax
lea ecx, [ebp - 0x2e0]
call fcn.00432840
mov ecx, dword [ebp + 8]
add ecx, 2
mov dword [ebp + 8], ecx
jmp 0x43e831
jmp 0x43e80c
mov edx, dword [ebp + 8]
movzx eax, word [edx]
mov dword [ebp - 0x4cc], eax
mov ecx, dword [ebp + 8]
add ecx, 2
mov dword [ebp + 8], ecx
cmp dword [ebp - 0x4cc], 0x27
je 0x43e88c
jmp 0x43ede5
lea ecx, [ebp - 0x2e0]
call fcn.00433360
movzx edx, al
test edx, edx
jne 0x43edc0
push 0x4e6594
lea ecx, [ebp - 0x37c]
call fcn.00432510
movzx eax, al
test eax, eax
jne 0x43e8d0
push 0x4e3a44
lea ecx, [ebp - 0x37c]
call fcn.00432510
movzx ecx, al
test ecx, ecx
je 0x43e8ed
lea edx, [ebp - 0x2e0]
push edx
mov ecx, dword [ebp - 0x44c]
add ecx, 0x108
call fcn.004324b0
jmp 0x43edc0
push str.restype
lea ecx, [ebp - 0x37c]
call fcn.00432510
movzx eax, al
test eax, eax
je 0x43e921
lea ecx, [ebp - 0x2e0]
push ecx
mov ecx, dword [ebp - 0x44c]
add ecx, 0x18c
call fcn.004324b0
jmp 0x43edc0
push str.dest
lea ecx, [ebp - 0x37c]
call fcn.00432510
movzx edx, al
test edx, edx
je 0x43e9fb
push 0xa
lea eax, [ebp - 0x450]
push eax
lea ecx, [ebp - 0x2e0]
call fcn.004325f0
push eax
call fcn.004c5289
add esp, 0xc
mov ecx, dword [ebp - 0x44c]
mov dword [ecx + 0x210], eax
push 0xa
lea edx, [ebp - 0x450]
push edx
mov eax, dword [ebp - 0x450]
add eax, 2
push eax
call fcn.004c5289
add esp, 0xc
mov ecx, dword [ebp - 0x44c]
mov dword [ecx + 0x214], eax
push 0xa
lea edx, [ebp - 0x450]
push edx
mov eax, dword [ebp - 0x450]
add eax, 2
push eax
call fcn.004c5289
add esp, 0xc
mov ecx, dword [ebp - 0x44c]
mov dword [ecx + 0x218], eax
push 0xa
lea edx, [ebp - 0x450]
push edx
mov eax, dword [ebp - 0x450]
add eax, 2
push eax
call fcn.004c5289
add esp, 0xc
mov ecx, dword [ebp - 0x44c]
mov dword [ecx + 0x21c], eax
mov edx, dword [ebp - 0x44c]
add edx, 0x210
push edx
mov ecx, dword [ebp + 0x10]
call fcn.00438fc0
mov ecx, eax
call fcn.00435fe0
jmp 0x43edc0
push str.source
lea ecx, [ebp - 0x37c]
call fcn.00432510
movzx eax, al
test eax, eax
je 0x43eab9
push 0xa
lea ecx, [ebp - 0x450]
push ecx
lea ecx, [ebp - 0x2e0]
call fcn.004325f0
push eax
call fcn.004c5289
add esp, 0xc
mov edx, dword [ebp - 0x44c]
mov dword [edx + 0x220], eax
push 0xa
lea eax, [ebp - 0x450]
push eax
mov ecx, dword [ebp - 0x450]
add ecx, 2
push ecx
call fcn.004c5289
add esp, 0xc
mov edx, dword [ebp - 0x44c]
mov dword [edx + 0x224], eax
push 0xa
lea eax, [ebp - 0x450]
push eax
mov ecx, dword [ebp - 0x450]
add ecx, 2
push ecx
call fcn.004c5289
add esp, 0xc
mov edx, dword [ebp - 0x44c]
mov dword [edx + 0x228], eax
push 0xa
lea eax, [ebp - 0x450]
push eax
mov ecx, dword [ebp - 0x450]
add ecx, 2
push ecx
call fcn.004c5289
add esp, 0xc
mov edx, dword [ebp - 0x44c]
mov dword [edx + 0x22c], eax
jmp 0x43edc0
push str.corner
lea ecx, [ebp - 0x37c]
call fcn.00432510
movzx eax, al
test eax, eax
je 0x43eb77
push 0xa
lea ecx, [ebp - 0x450]
push ecx
lea ecx, [ebp - 0x2e0]
call fcn.004325f0
push eax
call fcn.004c5289
add esp, 0xc
mov edx, dword [ebp - 0x44c]
mov dword [edx + 0x230], eax
push 0xa
lea eax, [ebp - 0x450]
push eax
mov ecx, dword [ebp - 0x450]
add ecx, 2
push ecx
call fcn.004c5289
add esp, 0xc
mov edx, dword [ebp - 0x44c]
mov dword [edx + 0x234], eax
push 0xa
lea eax, [ebp - 0x450]
push eax
mov ecx, dword [ebp - 0x450]
add ecx, 2
push ecx
call fcn.004c5289
add esp, 0xc
mov edx, dword [ebp - 0x44c]
mov dword [edx + 0x238], eax
push 0xa
lea eax, [ebp - 0x450]
push eax
mov ecx, dword [ebp - 0x450]
add ecx, 2
push ecx
call fcn.004c5289
add esp, 0xc
mov edx, dword [ebp - 0x44c]
mov dword [edx + 0x23c], eax
jmp 0x43edc0
push str.mask
lea ecx, [ebp - 0x37c]
call fcn.00432510
movzx eax, al
test eax, eax
je 0x43ebff
push 0
lea ecx, [ebp - 0x2e0]
call fcn.00432590
movzx ecx, ax
cmp ecx, 0x23
jne 0x43ebd1
push 0x10
lea edx, [ebp - 0x450]
push edx
lea ecx, [ebp - 0x2e0]
call fcn.004325f0
add eax, 2
push eax
call fcn.004c52b3
add esp, 0xc
mov ecx, dword [ebp - 0x44c]
mov dword [ecx + 0x240], eax
jmp 0x43ebfa
push 0x10
lea edx, [ebp - 0x450]
push edx
lea ecx, [ebp - 0x2e0]
call fcn.004325f0
push eax
call fcn.004c52b3
add esp, 0xc
mov ecx, dword [ebp - 0x44c]
mov dword [ecx + 0x240], eax
jmp 0x43edc0
push str.fade
lea ecx, [ebp - 0x37c]
call fcn.00432510
movzx edx, al
test edx, edx
je 0x43ec44
push 0xa
lea eax, [ebp - 0x450]
push eax
lea ecx, [ebp - 0x2e0]
call fcn.004325f0
push eax
call fcn.004c52b3
add esp, 0xc
mov ecx, dword [ebp - 0x44c]
mov byte [ecx + 0x244], al
jmp 0x43edc0
push str.hole
lea ecx, [ebp - 0x37c]
call fcn.00432510
movzx edx, al
test edx, edx
je 0x43eca5
push 0x4e6600
lea ecx, [ebp - 0x2e0]
call fcn.004325f0
push eax
call fcn.004c2644
add esp, 8
test eax, eax
jne 0x43ec84
mov dword [ebp - 0x478], 1
jmp 0x43ec8e
mov dword [ebp - 0x478], 0
mov eax, dword [ebp - 0x44c]
mov cl, byte [ebp - 0x478]
mov byte [eax + 0x245], cl
jmp 0x43edc0
push str.xtiled
lea ecx, [ebp - 0x37c]
call fcn.00432510
movzx edx, al
test edx, edx
je 0x43ed06
push 0x4e6600
lea ecx, [ebp - 0x2e0]
call fcn.004325f0
push eax
call fcn.004c2644
add esp, 8
test eax, eax
jne 0x43ece5
mov dword [ebp - 0x47c], 1
jmp 0x43ecef
mov dword [ebp - 0x47c], 0
mov eax, dword [ebp - 0x44c]
mov cl, byte [ebp - 0x47c]
mov byte [eax + 0x246], cl
jmp 0x43edc0
push str.ytiled
lea ecx, [ebp - 0x37c]
call fcn.00432510
movzx edx, al
test edx, edx
je 0x43ed64
push 0x4e6600
lea ecx, [ebp - 0x2e0]
call fcn.004325f0
push eax
call fcn.004c2644
add esp, 8
test eax, eax
jne 0x43ed46
mov dword [ebp - 0x480], 1
jmp 0x43ed50
mov dword [ebp - 0x480], 0
mov eax, dword [ebp - 0x44c]
mov cl, byte [ebp - 0x480]
mov byte [eax + 0x247], cl
jmp 0x43edc0
push 0x4e662c
lea ecx, [ebp - 0x37c]
call fcn.00432510
movzx edx, al
test edx, edx
je 0x43edc0
push 0x4e6600
lea ecx, [ebp - 0x2e0]
call fcn.004325f0
push eax
call fcn.004c2644
add esp, 8
test eax, eax
jne 0x43eda4
mov dword [ebp - 0x49c], 1
jmp 0x43edae
mov dword [ebp - 0x49c], 0
mov eax, dword [ebp - 0x44c]
mov cl, byte [ebp - 0x49c]
mov byte [eax + 0x248], cl
mov edx, dword [ebp + 8]
movzx eax, word [edx]
mov dword [ebp - 0x4d0], eax
mov ecx, dword [ebp + 8]
add ecx, 2
mov dword [ebp + 8], ecx
cmp dword [ebp - 0x4d0], 0x20
je 0x43ede0
jmp 0x43ede5
jmp 0x43e6ce
jmp 0x43e69b
mov ecx, dword [ebp - 0x44c]
add ecx, 0x108
call fcn.004325f0
push eax
lea ecx, [ebp - 0x25c]
call fcn.00415c30
mov byte [ebp - 4], 2
push 0xffffffffffffffff
push 0x2e
lea ecx, [ebp - 0x25c]
call fcn.00442940
mov dword [ebp - 0x468], eax
cmp dword [ebp - 0x468], 0xffffffff
je 0x43f247
mov ecx, dword [ebp + 0x10]
call fcn.00438fc0
mov ecx, eax
call fcn.00435d20
mov dword [ebp - 0x474], eax
call fcn.00439d70
push eax
lea ecx, [ebp - 0x448]
call fcn.00432150
mov byte [ebp - 4], 3
mov dword [ebp - 0x484], 8
mov dword [ebp - 0x454], 0
jmp 0x43ee7c
mov edx, dword [ebp - 0x454]
add edx, 1
mov dword [ebp - 0x454], edx
mov eax, dword [ebp - 0x454]
cmp eax, dword [ebp - 0x484]
jae 0x43f238
lea ecx, [ebp - 0x244]
call fcn.00431a1f
mov byte [ebp - 4], 4
mov ecx, dword [ebp - 0x454]
cmp dword [ecx*4 + 0x50bb90], 0x64
je 0x43effb
xor edx, edx
mov dword [ebp - 0x24], edx
mov dword [ebp - 0x20], edx
mov dword [ebp - 0x1c], edx
mov dword [ebp - 0x18], edx
mov dword [ebp - 0x14], edx
mov eax, dword [ebp - 0x454]
mov ecx, dword [eax*4 + 0x50bb90]
push ecx
push 0x4e6634
lea edx, [ebp - 0x24]
push edx
call fcn.0041a8d0
add esp, 0xc
push 0xffffffffffffffff
mov eax, dword [ebp - 0x468]
push eax
lea ecx, [ebp - 0x3ac]
push ecx
lea ecx, [ebp - 0x25c]
call fcn.0042a560
mov dword [ebp - 0x4d8], eax
mov edx, dword [ebp - 0x4d8]
mov dword [ebp - 0x4e8], edx
mov byte [ebp - 4], 5
mov eax, dword [ebp - 0x468]
push eax
push 0
lea ecx, [ebp - 0x3c4]
push ecx
lea ecx, [ebp - 0x25c]
call fcn.0042a560
mov dword [ebp - 0x4dc], eax
mov edx, dword [ebp - 0x4dc]
mov dword [ebp - 0x4e0], edx
mov byte [ebp - 4], 6
lea eax, [ebp - 0x24]
push eax
mov ecx, dword [ebp - 0x4e0]
push ecx
lea edx, [ebp - 0x394]
push edx
call fcn.00423440
add esp, 0xc
mov dword [ebp - 0x4e4], eax
mov eax, dword [ebp - 0x4e4]
mov dword [ebp - 0x4a0], eax
mov byte [ebp - 4], 7
mov ecx, dword [ebp - 0x4e8]
push ecx
mov edx, dword [ebp - 0x4a0]
push edx
movzx eax, byte [ebp - 0x45d]
push eax
lea ecx, [ebp - 0x2f8]
call fcn.00436780
mov ecx, dword [ebp - 0x498]
or ecx, 8
mov dword [ebp - 0x498], ecx
lea edx, [ebp - 0x2f8]
mov dword [ebp - 0x4a4], edx
mov eax, dword [ebp - 0x4a4]
push eax
lea ecx, [ebp - 0x244]
call fcn.00422750
lea ecx, [ebp - 0x2f8]
call fcn.00431ae1
mov byte [ebp - 4], 6
lea ecx, [ebp - 0x394]
call fcn.00431ae1
mov byte [ebp - 4], 5
lea ecx, [ebp - 0x3c4]
call fcn.00431ae1
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x3ac]
call fcn.00431ae1
jmp 0x43f037
lea ecx, [ebp - 0x25c]
mov dword [ebp - 0x4a8], ecx
lea edx, [ebp - 0x244]
cmp edx, dword [ebp - 0x4a8]
je 0x43f037
xor eax, eax
mov byte [ebp - 0x457], al
movzx ecx, byte [ebp - 0x457]
push ecx
lea edx, [ebp - 0x25c]
push edx
lea ecx, [ebp - 0x244]
call fcn.004424d0
push 0x208
push 0
lea eax, [ebp - 0x22c]
push eax
call fcn.004b5de0
add esp, 0xc
lea ecx, [ebp - 0x448]
call fcn.004325f0
push eax
lea ecx, [ebp - 0x22c]
push ecx
call fcn.004c4e8d
add esp, 8
lea edx, [ebp - 0x244]
mov dword [ebp - 0x46c], edx
mov eax, dword [ebp - 0x46c]
mov dword [ebp - 0x490], eax
mov ecx, dword [ebp - 0x46c]
cmp dword [ecx + 0x14], 8
jb 0x43f098
mov dword [ebp - 0x494], 1
jmp 0x43f0a2
mov dword [ebp - 0x494], 0
mov dl, byte [ebp - 0x494]
mov byte [ebp - 0x455], dl
movzx eax, byte [ebp - 0x455]
test eax, eax
je 0x43f0d3
mov ecx, dword [ebp - 0x46c]
mov edx, dword [ecx]
mov dword [ebp - 0x4ac], edx
mov eax, dword [ebp - 0x4ac]
mov dword [ebp - 0x490], eax
mov ecx, dword [ebp - 0x490]
mov dword [ebp - 0x4b0], ecx
mov edx, dword [ebp - 0x4b0]
mov dword [ebp - 0x4b4], edx
mov eax, dword [ebp - 0x4b4]
push eax
lea ecx, [ebp - 0x22c]
push ecx
call dword [sym.imp.SHLWAPI.dll_PathAppendW]
lea edx, [ebp - 0x22c]
push edx
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x43f224
lea eax, [ebp - 0x244]
mov dword [ebp - 0x470], eax
mov ecx, dword [ebp - 0x470]
mov dword [ebp - 0x488], ecx
mov edx, dword [ebp - 0x470]
cmp dword [edx + 0x14], 8
jb 0x43f144
mov dword [ebp - 0x48c], 1
jmp 0x43f14e
mov dword [ebp - 0x48c], 0
mov al, byte [ebp - 0x48c]
mov byte [ebp - 0x456], al
movzx ecx, byte [ebp - 0x456]
test ecx, ecx
je 0x43f17f
mov edx, dword [ebp - 0x470]
mov eax, dword [edx]
mov dword [ebp - 0x4b8], eax
mov ecx, dword [ebp - 0x4b8]
mov dword [ebp - 0x488], ecx
mov edx, dword [ebp - 0x488]
mov dword [ebp - 0x4ec], edx
mov eax, dword [ebp - 0x4ec]
mov dword [ebp - 0x4c0], eax
mov ecx, dword [ebp - 0x4c0]
push ecx
mov ecx, dword [ebp - 0x44c]
add ecx, 0x108
call fcn.004324e0
mov edx, dword [ebp - 0x454]
mov eax, dword [edx*4 + 0x50bb90]
push eax
push 0x64
mov ecx, dword [ebp - 0x474]
push ecx
call dword [sym.imp.KERNEL32.dll_MulDiv]
mov edx, dword [ebp - 0x44c]
mov dword [edx + 0x24c], eax
mov eax, dword [ebp - 0x454]
mov ecx, dword [eax*4 + 0x50bb90]
cmp ecx, dword [ebp - 0x474]
je 0x43f213
mov edx, dword [ebp - 0x484]
sub edx, 1
cmp dword [ebp - 0x454], edx
je 0x43f213
mov eax, dword [ebp - 0x454]
mov ecx, dword [eax*4 + 0x50bb94]
cmp ecx, dword [ebp - 0x474]
jbe 0x43f224
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x244]
call fcn.00431ae1
jmp 0x43f238
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x244]
call fcn.00431ae1
jmp 0x43ee6d
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x448]
call fcn.00432380
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x25c]
call fcn.00431ae1
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x2e0]
call fcn.00432380
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x37c]
call fcn.00432380
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.004b42e4
mov esp, ebp
pop ebp
ret 0xc