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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x5ad56c
mov eax, dword fs:[0]
push eax
sub esp, 0x4a0
mov eax, dword [0x5f13cc]
xor eax, esp
mov dword [esp + 0x498], eax
push ebx
push esi
push edi
mov eax, dword [0x5f13cc]
xor eax, esp
push eax
lea eax, [esp + 0x4b0]
mov dword fs:[0], eax
mov eax, dword [ebp + 0xc]
mov esi, dword [ebp + 8]
mov edi, ecx
mov dword [esp + 0x24], edi
mov dword [esp + 0x18], eax
call fcn.00455090
mov ecx, dword [esi + 8]
mov eax, dword [esi + 0x24]
push ecx
call fcn.004563c0
push eax
push 0x5c0f50
call fcn.004100a0
add esp, 0xc
cmp dword [esi + 0x2c], 1
jne 0x4579fd
cmp dword [esi + 0x30], 2
je 0x4579fd
push 0x5c0f74
call fcn.004100a0
add esp, 4
jmp 0x458cf9
lea edx, [esp + 0x6c]
push edx
call fcn.00459710
xor ebx, ebx
mov dword [esp + 0x4b8], ebx
mov eax, dword [esp + 0x18]
push eax
lea ecx, [edi + 0x128]
push ecx
mov ecx, dword [ebp + 0x10]
lea edx, [esp + 0x74]
call fcn.00459ef0
test al, al
je 0x458cb7
mov eax, dword [esi + 0x24]
sub eax, 0x10901
je 0x458463
mov ecx, 2
sub eax, ecx
je 0x457f3c
sub eax, ecx
jne 0x458ce5
cmp dword [esi + 0x2c], ebx
jne 0x457dc0
mov dword [esp + 0x20], ebx
mov dword [esp + 0x18], ebx
mov byte [esp + 0x17], bl
mov dword [esp + 0x420], 0xf
mov dword [esp + 0x41c], ebx
mov byte [esp + 0x40c], bl
mov bl, 0x21
push str.RedirectIP
lea ecx, [esp + 0x3f0]
mov byte [esp + 0x4bc], bl
call fcn.00405210
lea edx, [esp + 0x24]
push edx
lea eax, [esp + 0x3f0]
push eax
lea ecx, [esp + 0x74]
mov byte [esp + 0x4c0], 0x22
call fcn.0045b9c0
lea ecx, [esp + 0x3ec]
mov byte [esp + 0x4b8], bl
call fcn.00405250
push str.RedirectPort
lea ecx, [esp + 0x364]
call fcn.00405210
lea ecx, [esp + 0x1c]
push ecx
lea edx, [esp + 0x364]
push edx
lea ecx, [esp + 0x74]
mov byte [esp + 0x4c0], 0x23
call fcn.0045bad0
lea ecx, [esp + 0x360]
mov byte [esp + 0x4b8], bl
call fcn.00405250
push str.CurPoint
lea ecx, [esp + 0x134]
call fcn.00405210
lea eax, [esp + 0x20]
push eax
lea ecx, [esp + 0x134]
push ecx
lea ecx, [esp + 0x74]
mov byte [esp + 0x4c0], 0x24
call fcn.0045b9c0
lea ecx, [esp + 0x130]
mov byte [esp + 0x4b8], bl
call fcn.00405250
push str.CurLevel
lea ecx, [esp + 0x2bc]
call fcn.00405210
lea edx, [esp + 0x18]
push edx
lea eax, [esp + 0x2bc]
push eax
lea ecx, [esp + 0x74]
mov byte [esp + 0x4c0], 0x25
call fcn.0045bad0
lea ecx, [esp + 0x2b8]
mov byte [esp + 0x4b8], bl
call fcn.00405250
push str.IconState
lea ecx, [esp + 0x16c]
call fcn.00405210
lea ecx, [esp + 0x17]
push ecx
lea edx, [esp + 0x16c]
push edx
lea ecx, [esp + 0x74]
mov byte [esp + 0x4c0], 0x26
call fcn.0045bf70
lea ecx, [esp + 0x168]
mov byte [esp + 0x4b8], bl
call fcn.00405250
push 0x5c0da8
lea ecx, [esp + 0x1a4]
call fcn.00405210
lea eax, [esp + 0x24]
push eax
lea ecx, [esp + 0x1a4]
push ecx
lea ecx, [esp + 0x74]
mov byte [esp + 0x4c0], 0x27
call fcn.0045b9c0
lea ecx, [esp + 0x1a0]
mov byte [esp + 0x4b8], bl
call fcn.00405250
push str.LevelName
lea ecx, [esp + 0xfc]
call fcn.00405210
lea edx, [esp + 0x408]
push edx
lea eax, [esp + 0xfc]
push eax
lea ecx, [esp + 0x74]
mov byte [esp + 0x4c0], 0x28
call fcn.0045c080
lea ecx, [esp + 0xf8]
call fcn.00405250
lea ecx, [esp + 0x1c]
call fcn.00404530
lea eax, [edi - 0x24]
mov byte [esp + 0x4b8], 0x29
push eax
lea ebx, [esp + 0x20]
mov dword [esp + 0x30], eax
call fcn.00457110
push 0x7c
lea ecx, [esp + 0x428]
push 0
push ecx
call fcn.00580260
mov eax, dword [esp + 0x28]
add esp, 0xc
push 0x7c
lea edx, [esp + 0x428]
push edx
push 0
push eax
call fcn.00450b40
movzx ebx, word [esp + 0x28]
movzx esi, byte [esp + 0x27]
mov ecx, dword [esp + 0x30]
mov eax, dword [esp + 0x41c]
add esp, 0x10
cmp dword [esp + 0x420], 0x10
mov dword [esp + 0x424], ebx
mov dword [esp + 0x428], ecx
mov dword [esp + 0x42c], esi
jae 0x457cde
lea eax, [esp + 0x40c]
push 0x36
lea edx, [esp + 0x434]
push edx
push 0xffffffffffffffff
push eax
push 0
push 0x3a8
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
cmp dword [esp + 0x420], 0x10
mov ecx, dword [esp + 0x40c]
jae 0x457d10
lea ecx, [esp + 0x40c]
lea eax, [esp + 0x98]
push eax
call fcn.0040a000
push esi
mov byte [esp + 0x4bc], 0x2a
mov ecx, dword [eax]
mov edx, dword [esp + 0x24]
push ebx
push ecx
push edx
push 0x5c12a0
call fcn.004100a0
add esp, 0x14
lea ecx, [esp + 0x98]
mov byte [esp + 0x4b8], 0x29
call fcn.00404510
mov ecx, dword [esp + 0x1c]
lea eax, [esp + 0x424]
push eax
push 0
push ecx
mov ecx, 0x7c
call fcn.00450d50
add esp, 0xc
mov dword [edi + 0x158], 1
cmp dword [edi + 0x164], 0
jbe 0x457d9b
lea ecx, [edi + 0x15c]
call fcn.0045b470
mov edx, dword [edi - 0x20]
push 0
push 0
push eax
push edx
call dword [sym.imp.USER32.dll_PostMessageW]
jmp 0x457da6
mov esi, dword [esp + 0x2c]
push 1
call fcn.00458d60
lea ecx, [esp + 0x1c]
call fcn.00404510
lea ecx, [esp + 0x408]
call fcn.00405250
jmp 0x458ce5
cmp dword [esi + 0x30], ecx
jne 0x458ce5
push str.RedirectIP
lea ecx, [esp + 0x1c0]
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x24], ebx
call fcn.00405210
lea eax, [esp + 0x18]
push eax
lea ecx, [esp + 0x1c0]
push ecx
lea ecx, [esp + 0x74]
mov byte [esp + 0x4c0], 0x2b
call fcn.0045b9c0
lea ecx, [esp + 0x1bc]
mov byte [esp + 0x4b8], bl
call fcn.00405250
push str.RedirectPort
lea ecx, [esp + 0x1dc]
call fcn.00405210
lea edx, [esp + 0x20]
push edx
lea eax, [esp + 0x1dc]
push eax
lea ecx, [esp + 0x74]
mov byte [esp + 0x4c0], 0x2c
call fcn.0045bad0
lea ecx, [esp + 0x1d8]
mov byte [esp + 0x4b8], bl
call fcn.00405250
mov eax, dword [esp + 0x20]
mov esi, dword [esp + 0x18]
mov word [edi + 0x14c], ax
movzx eax, ax
push eax
push esi
push 0x5c1318
mov dword [edi + 0x148], esi
mov dword [esp + 0x30], eax
call fcn.004100a0
add esp, 0xc
lea ecx, [esp + 0x2c]
call fcn.00404530
lea ecx, [edi - 0x24]
push ecx
lea ebx, [esp + 0x30]
mov byte [esp + 0x4bc], 0x2d
call fcn.00457110
mov ebx, dword [esp + 0x2c]
xor eax, eax
push 0x2c
lea edx, [esp + 0x38]
push edx
push 0xc00
push ebx
mov dword [esp + 0x44], eax
mov dword [esp + 0x48], eax
mov dword [esp + 0x4c], eax
mov dword [esp + 0x50], eax
mov dword [esp + 0x54], eax
mov dword [esp + 0x58], eax
mov dword [esp + 0x5c], eax
mov dword [esp + 0x60], eax
mov dword [esp + 0x64], eax
mov dword [esp + 0x68], eax
mov dword [esp + 0x6c], eax
call fcn.00450b40
mov ax, word [esp + 0x30]
lea ecx, [esp + 0x44]
push ecx
push 0xc00
push ebx
mov ecx, 0x2c
mov dword [esp + 0x6c], esi
mov word [esp + 0x70], ax
call fcn.00450d50
add esp, 0x1c
push 0
push 0
push 0x8291
mov edx, dword [edi - 0x20]
push edx
call dword [sym.imp.USER32.dll_PostMessageW]
mov eax, dword [esp + 0x24]
push eax
push esi
push 0x5c1138
call fcn.004100a0
add esp, 0xc
lea ecx, [esp + 0x2c]
call fcn.00404510
jmp 0x458ce5
cmp dword [esi + 0x2c], ebx
jne 0x4582e7
mov dword [esp + 0x28], ebx
mov dword [esp + 0x20], ebx
mov byte [esp + 0x17], bl
mov dword [esp + 0x18], ebx
mov dword [esp + 0x420], 0xf
mov dword [esp + 0x41c], ebx
mov byte [esp + 0x40c], bl
mov bl, 0x14
push str.RedirectIP
lea ecx, [esp + 0x2f4]
mov byte [esp + 0x4bc], bl
call fcn.00405210
lea ecx, [esp + 0x24]
push ecx
lea edx, [esp + 0x2f4]
push edx
lea ecx, [esp + 0x74]
mov byte [esp + 0x4c0], 0x15
call fcn.0045b9c0
lea ecx, [esp + 0x2f0]
mov byte [esp + 0x4b8], bl
call fcn.00405250
push str.RedirectPort
lea ecx, [esp + 0x214]
call fcn.00405210
lea eax, [esp + 0x1c]
push eax
lea ecx, [esp + 0x214]
push ecx
lea ecx, [esp + 0x74]
mov byte [esp + 0x4c0], 0x16
call fcn.0045bad0
lea ecx, [esp + 0x210]
mov byte [esp + 0x4b8], bl
call fcn.00405250
push str.CurPoint
lea ecx, [esp + 0x3d4]
call fcn.00405210
lea edx, [esp + 0x28]
push edx
lea eax, [esp + 0x3d4]
push eax
lea ecx, [esp + 0x74]
mov byte [esp + 0x4c0], 0x17
call fcn.0045b9c0
lea ecx, [esp + 0x3d0]
mov byte [esp + 0x4b8], bl
call fcn.00405250
push str.CurLevel
lea ecx, [esp + 0x24c]
call fcn.00405210
lea ecx, [esp + 0x20]
push ecx
lea edx, [esp + 0x24c]
push edx
lea ecx, [esp + 0x74]
mov byte [esp + 0x4c0], 0x18
call fcn.0045bad0
lea ecx, [esp + 0x248]
mov byte [esp + 0x4b8], bl
call fcn.00405250
push str.IconState
lea ecx, [esp + 0x32c]
call fcn.00405210
lea eax, [esp + 0x17]
push eax
lea ecx, [esp + 0x32c]
push ecx
lea ecx, [esp + 0x74]
mov byte [esp + 0x4c0], 0x19
call fcn.0045bf70
lea ecx, [esp + 0x328]
mov byte [esp + 0x4b8], bl
call fcn.00405250
push 0x5c0fa4
lea ecx, [esp + 0x284]
call fcn.00405210
lea edx, [esp + 0x18]
push edx
lea eax, [esp + 0x284]
push eax
lea ecx, [esp + 0x74]
mov byte [esp + 0x4c0], 0x1a
call fcn.0045bad0
lea ecx, [esp + 0x280]
mov byte [esp + 0x4b8], bl
call fcn.00405250
push str.LevelName
lea ecx, [esp + 0x39c]
call fcn.00405210
lea ecx, [esp + 0x408]
push ecx
lea edx, [esp + 0x39c]
push edx
lea ecx, [esp + 0x74]
mov byte [esp + 0x4c0], 0x1b
call fcn.0045c080
lea ecx, [esp + 0x398]
call fcn.00405250
lea ecx, [esp + 0x1c]
call fcn.00404530
lea eax, [edi - 0x24]
mov byte [esp + 0x4b8], 0x1c
push eax
lea ebx, [esp + 0x20]
mov dword [esp + 0x30], eax
call fcn.00457110
push 0x7c
lea eax, [esp + 0x428]
push 0
push eax
call fcn.00580260
mov ebx, dword [esp + 0x28]
add esp, 0xc
push 0x7c
lea ecx, [esp + 0x428]
push ecx
push 0
push ebx
call fcn.00450b40
movzx eax, word [esp + 0x30]
mov edx, dword [esp + 0x38]
mov dword [esp + 0x434], eax
movzx eax, byte [esp + 0x27]
mov esi, 0x10
add esp, 0x10
cmp dword [esp + 0x420], esi
mov dword [esp + 0x42c], eax
mov eax, dword [esp + 0x40c]
mov dword [esp + 0x428], edx
jae 0x4581cf
lea eax, [esp + 0x40c]
push 0x36
lea ecx, [esp + 0x434]
push ecx
push 0xffffffffffffffff
push eax
push 0
push 0x3a8
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
cmp dword [esp + 0x420], esi
mov ecx, dword [esp + 0x40c]
jae 0x458200
lea ecx, [esp + 0x40c]
lea edx, [esp + 0x9c]
push edx
call fcn.0040a000
mov byte [esp + 0x4b8], 0x1d
movzx esi, word [esp + 0x18]
movzx ecx, byte [esp + 0x17]
mov eax, dword [eax]
push esi
push ecx
movzx ecx, word [esp + 0x28]
push ecx
mov ecx, dword [esp + 0x34]
push eax
push ecx
push 0x5c1180
call fcn.004100a0
add esp, 0x18
lea ecx, [esp + 0x9c]
mov byte [esp + 0x4b8], 0x1c
call fcn.00404510
lea edx, [esp + 0x424]
push edx
push 0
push ebx
mov ecx, 0x7c
call fcn.00450d50
xor eax, eax
add esp, 0xc
mov dword [esp + 0x34], eax
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], eax
mov dword [esp + 0x40], eax
mov dword [esp + 0x44], eax
mov dword [esp + 0x48], eax
mov dword [esp + 0x4c], eax
mov dword [esp + 0x50], eax
mov dword [esp + 0x54], eax
mov dword [esp + 0x58], eax
mov dword [esp + 0x5c], eax
push 0x2c
lea eax, [esp + 0x38]
push eax
push 0xc00
push ebx
call fcn.00450b40
lea ecx, [esp + 0x44]
push ecx
push 0xc00
push ebx
mov ecx, 0x2c
mov dword [esp + 0x50], esi
call fcn.00450d50
add esp, 0x1c
push 0x5c1220
call fcn.004100a0
add esp, 4
mov eax, ebx
call fcn.00450ef0
mov dword [edi + 0x154], 1
jmp 0x457d76
cmp dword [esi + 0x30], ecx
jne 0x458ce5
push str.RedirectIP
lea ecx, [esp + 0x118]
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x2c], ebx
call fcn.00405210
lea eax, [esp + 0x18]
push eax
lea ecx, [esp + 0x118]
push ecx
lea ecx, [esp + 0x74]
mov byte [esp + 0x4c0], 0x1e
call fcn.0045b9c0
lea ecx, [esp + 0x114]
mov byte [esp + 0x4b8], bl
call fcn.00405250
push str.RedirectPort
lea ecx, [esp + 0x150]
call fcn.00405210
lea edx, [esp + 0x28]
push edx
lea eax, [esp + 0x150]
push eax
lea ecx, [esp + 0x74]
mov byte [esp + 0x4c0], 0x1f
call fcn.0045bad0
lea ecx, [esp + 0x14c]
mov byte [esp + 0x4b8], bl
call fcn.00405250
mov eax, dword [esp + 0x28]
mov esi, dword [esp + 0x18]
mov word [edi + 0x144], ax
movzx eax, ax
push eax
push esi
push 0x5c1240
mov dword [edi + 0x140], esi
mov dword [esp + 0x30], eax
call fcn.004100a0
add esp, 0xc
lea ecx, [esp + 0x20]
call fcn.00404530
lea ecx, [edi - 0x24]
push ecx
lea ebx, [esp + 0x24]
mov byte [esp + 0x4bc], 0x20
call fcn.00457110
mov ebx, dword [esp + 0x20]
xor eax, eax
push 0x2c
lea edx, [esp + 0x38]
push edx
push 0xc00
push ebx
mov dword [esp + 0x44], eax
mov dword [esp + 0x48], eax
mov dword [esp + 0x4c], eax
mov dword [esp + 0x50], eax
mov dword [esp + 0x54], eax
mov dword [esp + 0x58], eax
mov dword [esp + 0x5c], eax
mov dword [esp + 0x60], eax
mov dword [esp + 0x64], eax
mov dword [esp + 0x68], eax
mov dword [esp + 0x6c], eax
call fcn.00450b40
mov ax, word [esp + 0x38]
lea ecx, [esp + 0x44]
push ecx
push 0xc00
push ebx
mov ecx, 0x2c
mov dword [esp + 0x6c], esi
mov word [esp + 0x70], ax
call fcn.00450d50
add esp, 0x1c
push 0
push 0
push 0x8290
mov edx, dword [edi - 0x20]
push edx
call dword [sym.imp.USER32.dll_PostMessageW]
mov eax, dword [esp + 0x24]
push eax
push esi
push 0x5c1138
call fcn.004100a0
add esp, 0xc
lea ecx, [esp + 0x20]
call fcn.00404510
jmp 0x458ce5
cmp dword [esi + 0x2c], ebx
jne 0x458b3d
push str.RedirectIP
lea ecx, [esp + 0x188]
mov dword [esp + 0x24], ebx
mov dword [esp + 0x68], ebx
mov dword [esp + 0x64], ebx
mov dword [esp + 0x6c], ebx
mov dword [esp + 0x34], ebx
call fcn.00405210
lea ecx, [esp + 0x18]
push ecx
lea edx, [esp + 0x188]
push edx
lea ecx, [esp + 0x74]
mov byte [esp + 0x4c0], 1
call fcn.0045b9c0
lea ecx, [esp + 0x184]
mov byte [esp + 0x4b8], bl
call fcn.00405250
push str.RedirectPort
lea ecx, [esp + 0x1f8]
call fcn.00405210
lea eax, [esp + 0x1c]
push eax
lea ecx, [esp + 0x1f8]
push ecx
lea ecx, [esp + 0x74]
mov byte [esp + 0x4c0], 2
call fcn.0045bad0
lea ecx, [esp + 0x1f4]
mov byte [esp + 0x4b8], bl
call fcn.00405250
push 0x5c0fa4
lea ecx, [esp + 0x230]
call fcn.00405210
lea edx, [esp + 0x20]
push edx
lea eax, [esp + 0x230]
push eax
lea ecx, [esp + 0x74]
mov byte [esp + 0x4c0], 3
call fcn.0045bad0
lea ecx, [esp + 0x22c]
mov byte [esp + 0x4b8], bl
call fcn.00405250
push str.KeyTimeOut
lea ecx, [esp + 0x268]
call fcn.00405210
lea ecx, [esp + 0x64]
push ecx
lea edx, [esp + 0x268]
push edx
lea ecx, [esp + 0x74]
mov byte [esp + 0x4c0], 4
call fcn.0045bad0
lea ecx, [esp + 0x264]
mov byte [esp + 0x4b8], bl
call fcn.00405250
push str.ParaA
lea ecx, [esp + 0x2a0]
call fcn.00405210
lea eax, [esp + 0x60]
push eax
lea ecx, [esp + 0x2a0]
push ecx
lea ecx, [esp + 0x74]
mov byte [esp + 0x4c0], 5
call fcn.0045b9c0
lea ecx, [esp + 0x29c]
mov byte [esp + 0x4b8], bl
call fcn.00405250
push str.ParaB
lea ecx, [esp + 0x2d8]
call fcn.00405210
mov byte [esp + 0x4b8], 6
lea edx, [esp + 0x68]
push edx
lea eax, [esp + 0x2d8]
push eax
lea ecx, [esp + 0x74]
call fcn.0045b9c0
lea ecx, [esp + 0x2d4]
mov byte [esp + 0x4b8], bl
call fcn.00405250
push str.ParaC
lea ecx, [esp + 0x310]
call fcn.00405210
lea ecx, [esp + 0x30]
push ecx
lea edx, [esp + 0x310]
push edx
lea ecx, [esp + 0x74]
mov byte [esp + 0x4c0], 7
call fcn.0045b9c0
lea ecx, [esp + 0x30c]
mov byte [esp + 0x4b8], bl
call fcn.00405250
lea eax, [esp + 0x424]
push eax
call fcn.00455650
push str.LevelPoint
lea ecx, [esp + 0x348]
mov byte [esp + 0x4bc], 8
call fcn.00405210
lea ecx, [esp + 0x424]
push ecx
lea edx, [esp + 0x348]
push edx
lea ecx, [esp + 0x74]
mov byte [esp + 0x4c0], 9
call fcn.0045bbe0
lea ecx, [esp + 0x344]
mov byte [esp + 0x4b8], 8
call fcn.00405250
mov eax, dword [esp + 0x43c]
mov ecx, eax
shl ecx, 4
sub ecx, eax
lea eax, [ecx*8 + 4]
push eax
mov dword [esp + 0x2c], eax
call fcn.0057740a
mov edx, dword [esp + 0x2c]
add esp, 4
push edx
mov esi, eax
push ebx
push esi
mov dword [esp + 0x24], esi
call fcn.00580260
add esp, 0xc
mov dword [esp + 0xf4], esi
mov byte [esp + 0x4b8], 0xa
mov eax, dword [0x5fcd20]
mov edx, dword [eax + 0xc]
mov ecx, 0x5fcd20
call edx
add eax, 0x10
mov dword [esp + 0x1c], eax
mov dword [esp + 0x420], 0xf
mov dword [esp + 0x41c], ebx
mov byte [esp + 0x40c], bl
mov byte [esp + 0x4b8], 0xc
mov eax, dword [esp + 0x43c]
xor ecx, ecx
mov dword [esi], eax
cmp dword [esp + 0x43c], ebx
mov dword [esp + 0x28], ecx
jbe 0x45895c
lea edx, [esi + 0xc]
mov dword [esp + 0x2c], edx
jmp 0x458754
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x448]
cmp edx, ebx
je 0x45895c
mov eax, dword [esp + 0x44c]
sub eax, edx
sar eax, 2
cmp ecx, eax
jae 0x45895c
mov eax, dword [edx + ecx*4]
cmp eax, ebx
mov dword [esp + 0x28], eax
je 0x45895c
lea esi, [ecx + 1]
push esi
push str.Level_u
lea edi, [esp + 0x24]
call fcn.0045bcf0
mov eax, dword [esp + 0x24]
add esp, 8
push eax
lea ecx, [esp + 0xdc]
call fcn.00405210
mov byte [esp + 0x4b8], 0xd
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x28]
add ecx, 0xfffffff8
push ecx
lea ecx, [esp + 0xdc]
call fcn.0045bd10
mov byte [esp + 0x4b8], 0xc
cmp dword [esp + 0xf0], 0x10
jb 0x4587ee
mov edx, dword [esp + 0xdc]
push edx
call fcn.00578327
add esp, 4
push esi
push str.LevelName_u
lea edi, [esp + 0x24]
mov dword [esp + 0xf8], 0xf
mov dword [esp + 0xf4], ebx
mov byte [esp + 0xe4], bl
call fcn.0045bcf0
mov eax, dword [esp + 0x24]
add esp, 8
push eax
lea ecx, [esp + 0xc0]
call fcn.00405210
lea ecx, [esp + 0x408]
mov byte [esp + 0x4b8], 0xe
mov edx, dword [esp + 0x28]
push ecx
lea ecx, [esp + 0xc0]
call fcn.0045be40
mov edi, 0x10
mov byte [esp + 0x4b8], 0xc
cmp dword [esp + 0xd4], edi
mov byte [esp + 0x17], al
jb 0x458874
mov edx, dword [esp + 0xc0]
push edx
call fcn.00578327
add esp, 4
cmp byte [esp + 0x17], bl
mov dword [esp + 0xd4], 0xf
mov dword [esp + 0xd0], ebx
mov byte [esp + 0xc0], bl
je 0x4588c0
cmp dword [esp + 0x420], edi
mov eax, dword [esp + 0x40c]
jae 0x4588aa
lea eax, [esp + 0x40c]
mov ecx, dword [esp + 0x2c]
push 0x36
push ecx
push 0xffffffffffffffff
push eax
push ebx
push 0x3a8
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
push esi
push str.LevelAdd_u
lea edi, [esp + 0x24]
call fcn.0045bcf0
mov edx, dword [esp + 0x24]
add esp, 8
push edx
lea ecx, [esp + 0xa4]
call fcn.00405210
mov byte [esp + 0x4b8], 0xf
mov eax, dword [esp + 0x2c]
mov edx, dword [esp + 0x28]
add eax, 0xfffffffc
push eax
lea ecx, [esp + 0xa4]
call fcn.0045bd10
mov byte [esp + 0x4b8], 0xc
cmp dword [esp + 0xb8], 0x10
jb 0x458925
mov ecx, dword [esp + 0xa4]
push ecx
call fcn.00578327
add esp, 4
add dword [esp + 0x2c], 0x78
cmp esi, dword [esp + 0x43c]
mov edi, dword [esp + 0x24]
mov dword [esp + 0x28], esi
mov esi, dword [esp + 0x18]
mov dword [esp + 0xb8], 0xf
mov dword [esp + 0xb4], ebx
mov byte [esp + 0xa4], bl
jb 0x458750
mov edx, dword [esp + 0x30]
movzx eax, word [esp + 0x64]
movzx ecx, word [esp + 0x20]
push edx
mov edx, dword [esp + 0x6c]
push edx
mov edx, dword [esp + 0x68]
push edx
push eax
push ecx
push 0x5c1008
call fcn.004100a0
mov eax, dword [0x5fcd20]
mov edx, dword [eax + 0xc]
add esp, 0x18
mov ecx, 0x5fcd20
call edx
add eax, 0x10
mov dword [esp + 0x24], eax
lea eax, [edi - 0x24]
mov byte [esp + 0x4b8], 0x10
push eax
lea ebx, [esp + 0x28]
mov dword [esp + 0x30], eax
call fcn.00457110
mov ebx, dword [esp + 0x24]
xor eax, eax
mov dword [esp + 0x34], eax
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], eax
mov dword [esp + 0x40], eax
mov dword [esp + 0x44], eax
mov dword [esp + 0x48], eax
mov dword [esp + 0x4c], eax
mov dword [esp + 0x50], eax
mov dword [esp + 0x54], eax
mov dword [esp + 0x58], eax
mov dword [esp + 0x5c], eax
push 0x2c
lea eax, [esp + 0x38]
push eax
push 0xc00
push ebx
call fcn.00450b40
movzx eax, word [esp + 0x30]
mov ecx, dword [esp + 0x70]
mov edx, dword [esp + 0x78]
mov dword [esp + 0x44], eax
movzx eax, word [esp + 0x74]
mov dword [esp + 0x4c], ecx
lea ecx, [esp + 0x44]
push ecx
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x44]
push 0xc00
push ebx
mov ecx, 0x2c
mov dword [esp + 0x5c], edx
mov dword [esp + 0x60], eax
call fcn.00450d50
mov eax, dword [esi]
add esp, 0x1c
mov edx, eax
shl edx, 4
push esi
sub edx, eax
push 0x1000
lea ecx, [edx*8 + 4]
push ebx
call fcn.00450d50
add esp, 0xc
cmp dword [edi + 0x164], 0
mov dword [edi + 0x150], 1
jbe 0x458a87
lea ecx, [edi + 0x15c]
call fcn.0045b470
push 0
push 0
push eax
mov eax, dword [edi - 0x20]
push eax
call dword [sym.imp.USER32.dll_PostMessageW]
jmp 0x458a96
mov esi, dword [esp + 0x2c]
push 1
call fcn.00458d60
mov esi, dword [esp + 0x18]
lea eax, [ebx - 0x10]
mov byte [esp + 0x4b8], 0xc
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x458aba
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
cmp dword [esp + 0x420], 0x10
jb 0x458ad4
mov ecx, dword [esp + 0x40c]
push ecx
call fcn.00578327
add esp, 4
mov byte [esp + 0x4b8], 0xa
mov eax, dword [esp + 0x1c]
add eax, 0xfffffff0
mov dword [esp + 0x420], 0xf
mov dword [esp + 0x41c], 0
mov byte [esp + 0x40c], 0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x458b1a
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push esi
call fcn.0057832c
add esp, 4
lea ecx, [esp + 0x424]
push ecx
mov byte [esp + 0x4bc], 0
call fcn.00455700
jmp 0x458ce5
cmp dword [esi + 0x30], 2
jne 0x458ce5
push str.RedirectIP
lea ecx, [esp + 0x380]
mov dword [esp + 0x28], ebx
mov dword [esp + 0x1c], ebx
call fcn.00405210
lea edx, [esp + 0x24]
push edx
lea eax, [esp + 0x380]
push eax
lea ecx, [esp + 0x74]
mov byte [esp + 0x4c0], 0x11
call fcn.0045b9c0
lea ecx, [esp + 0x37c]
mov byte [esp + 0x4b8], bl
call fcn.00405250
push str.RedirectPort
lea ecx, [esp + 0x3b8]
call fcn.00405210
lea ecx, [esp + 0x18]
push ecx
lea edx, [esp + 0x3b8]
push edx
lea ecx, [esp + 0x74]
mov byte [esp + 0x4c0], 0x12
call fcn.0045bad0
lea ecx, [esp + 0x3b4]
mov byte [esp + 0x4b8], bl
call fcn.00405250
mov eax, dword [esp + 0x18]
mov esi, dword [esp + 0x24]
mov word [edi + 0x13c], ax
movzx eax, ax
push eax
push esi
push 0x5c10e0
mov dword [edi + 0x138], esi
mov dword [esp + 0x30], eax
call fcn.004100a0
add esp, 0xc
lea ecx, [esp + 0x30]
call fcn.00404530
lea eax, [edi - 0x24]
push eax
lea ebx, [esp + 0x34]
mov byte [esp + 0x4bc], 0x13
call fcn.00457110
mov ebx, dword [esp + 0x30]
xor eax, eax
push 0x2c
lea ecx, [esp + 0x38]
push ecx
push 0xc00
push ebx
mov dword [esp + 0x44], eax
mov dword [esp + 0x48], eax
mov dword [esp + 0x4c], eax
mov dword [esp + 0x50], eax
mov dword [esp + 0x54], eax
mov dword [esp + 0x58], eax
mov dword [esp + 0x5c], eax
mov dword [esp + 0x60], eax
mov dword [esp + 0x64], eax
mov dword [esp + 0x68], eax
mov dword [esp + 0x6c], eax
call fcn.00450b40
mov dx, word [esp + 0x28]
lea eax, [esp + 0x44]
push eax
push 0xc00
push ebx
mov ecx, 0x2c
mov dword [esp + 0x64], esi
mov word [esp + 0x68], dx
call fcn.00450d50
add esp, 0x1c
push 0
push 0
push 0x828f
mov ecx, dword [edi - 0x20]
push ecx
call dword [sym.imp.USER32.dll_PostMessageW]
mov edx, dword [esp + 0x24]
push edx
push esi
push 0x5c1138
call fcn.004100a0
add esp, 0xc
lea ecx, [esp + 0x30]
call fcn.00404510
jmp 0x458ce5
push str.penc
call fcn.004100a0
mov eax, dword [edi - 0x20]
add esp, 4
push eax
call dword [sym.imp.USER32.dll_IsWindow]
test eax, eax
je 0x458cde
mov ecx, dword [edi - 0x20]
push ecx
call dword [sym.imp.USER32.dll_DestroyWindow]
jmp 0x458ce5
push ebx
call dword [sym.imp.USER32.dll_PostQuitMessage]
lea ecx, [esp + 0x6c]
mov dword [esp + 0x4b8], 0xffffffff
call fcn.004597a0
mov ecx, dword [esp + 0x4b0]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x498]
xor ecx, esp
call fcn.005787fd
mov esp, ebp
pop ebp
ret 0xc