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

Disassembly:
push 0xffffffffffffffff
push 0x5e8c92
mov eax, dword fs:[0]
push eax
sub esp, 0x144
mov eax, dword [0x694114]
xor eax, esp
mov dword [esp + 0x140], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x694114]
xor eax, esp
push eax
lea eax, [esp + 0x158]
mov dword fs:[0], eax
mov eax, dword [esp + 0x168]
mov ebx, dword [esp + 0x17c]
mov edi, dword [esp + 0x16c]
mov esi, dword [esp + 0x170]
xor ebp, ebp
test byte [esp + 0x174], 0x20
mov dword [esp + 0x2c], eax
mov dword [esp + 0x20], ebx
mov dword [esp + 0x14], ebp
je 0x580429
mov ecx, dword [esi + 0xc]
mov edx, dword [esi + 4]
lea eax, [ecx + edx - 2]
mov dword [esp + 0x1c], eax
cmp ebx, ebp
je 0x58023e
mov edx, dword [ebx + 0x14]
mov eax, dword [edx + 0x28]
add ebx, 0x14
mov ecx, ebx
call eax
test al, al
je 0x58023e
push ebx
lea ecx, [esp + 0x90]
call fcn.0049e040
mov ebx, 1
mov dword [esp + 0x14], ebx
jmp 0x580289
mov dword [esp + 0x7c], ebp
lea ecx, [esp + 0x78]
mov dword [esp + 0x160], 1
mov dword [esp + 0x78], vtable.wxColour.0
call fcn.004e68e0
mov edx, dword [esp + 0x78]
mov eax, dword [edx + 0x2c]
push 0xff
push 0x66
push 0x66
push 0x66
lea ecx, [esp + 0x88]
call eax
mov dword [esp + 0x14], 2
mov ebx, dword [esp + 0x14]
lea eax, [esp + 0x78]
mov ebp, vtable.wxObject.0
mov dword [esp + 0x30], ebp
mov ecx, dword [eax + 4]
mov dword [esp + 0x34], ecx
test ecx, ecx
je 0x5802a0
inc dword [ecx + 4]
mov dword [esp + 0x30], vtable.wxColour.0
mov ecx, dword [eax + 8]
mov dword [esp + 0x38], ecx
movzx edx, byte [eax + 0xc]
mov byte [esp + 0x3c], dl
movzx ecx, byte [eax + 0xd]
mov byte [esp + 0x3d], cl
movzx edx, byte [eax + 0xe]
mov byte [esp + 0x3e], dl
movzx ecx, byte [eax + 0xf]
mov byte [esp + 0x3f], cl
movzx edx, byte [eax + 0x10]
mov byte [esp + 0x40], dl
mov dword [esp + 0x160], 2
test bl, 2
je 0x5802fb
and ebx, 0xfffffffd
lea ecx, [esp + 0x78]
mov dword [esp + 0x14], ebx
mov dword [esp + 0x78], ebp
call fcn.00423980
mov byte [esp + 0x160], 3
test bl, 1
je 0x580322
and ebx, 0xfffffffe
lea ecx, [esp + 0x8c]
mov dword [esp + 0x14], ebx
mov dword [esp + 0x8c], ebp
call fcn.00423980
push 0x64
push 3
lea eax, [esp + 0x38]
push eax
lea ecx, [esp + 0x30]
call fcn.00508e60
push 0x84
lea ecx, [esp + 0x28]
mov byte [esp + 0x164], 4
call fcn.00508970
mov ecx, dword [edi + 8]
mov dword [esp + 0x64], edi
mov edx, dword [ecx]
mov eax, dword [edx + 0x70]
call eax
mov dword [esp + 0x68], ebp
mov eax, dword [eax + 4]
mov dword [esp + 0x6c], eax
test eax, eax
je 0x58036a
inc dword [eax + 4]
mov dword [esp + 0x68], vtable.wxPen.0
mov ecx, dword [esp + 0x64]
mov ecx, dword [ecx + 8]
mov edx, dword [ecx]
mov edx, dword [edx + 0x6c]
lea eax, [esp + 0x24]
push eax
mov byte [esp + 0x164], 5
call edx
mov edx, dword [esi]
push dword [esp + 0x1c]
mov eax, dword [esi + 8]
mov ecx, dword [edi + 8]
mov ebx, dword [ecx]
add eax, edx
push eax
mov eax, dword [esp + 0x24]
push eax
push edx
mov edx, dword [ebx + 0x164]
mov byte [esp + 0x170], 6
call edx
mov eax, dword [esp + 0x68]
mov edx, dword [eax + 0x10]
lea ecx, [esp + 0x68]
mov byte [esp + 0x160], 7
call edx
test al, al
je 0x5803e0
mov eax, dword [esp + 0x64]
mov ecx, dword [eax + 8]
mov edx, dword [ecx]
mov edx, dword [edx + 0x6c]
lea eax, [esp + 0x68]
push eax
call edx
mov ebx, vtable.wxObject.0
lea ecx, [esp + 0x68]
mov byte [esp + 0x160], 4
mov dword [esp + 0x68], ebx
call fcn.00423980
lea ecx, [esp + 0x24]
mov byte [esp + 0x160], 3
mov dword [esp + 0x24], ebx
call fcn.00423980
lea ecx, [esp + 0x30]
mov dword [esp + 0x160], 0xffffffff
mov dword [esp + 0x30], ebx
call fcn.00423980
xor ebp, ebp
mov dword [esp + 0x24], ebp
cmp dword [esp + 0x178], ebp
je 0x580860
mov eax, dword [esi]
mov ecx, dword [esi + 8]
mov edx, dword [esi + 0xc]
mov ebx, dword [esi + 4]
mov dword [esp + 0x78], eax
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x80], ecx
push eax
lea ecx, [esp + 0x48]
mov dword [esp + 0x88], edx
push ecx
lea edx, [esp + 0x6c]
push edx
mov dword [esp + 0x50], 8
mov dword [esp + 0x54], 4
call fcn.0049e8c0
mov ecx, dword [eax]
mov ebp, dword [eax + 4]
mov eax, dword [esi + 0xc]
sub eax, ebp
cdq
sub eax, edx
sar eax, 1
add ebx, eax
lea eax, [ecx + ecx*2]
cdq
sub eax, edx
mov edx, dword [esi + 8]
sar eax, 1
sub edx, eax
add dword [esp + 0x84], edx
add esp, 0xc
test byte [esp + 0x178], 1
mov dword [esp + 0x7c], ebx
mov dword [esp + 0x24], eax
mov dword [esp + 0x114], ecx
mov dword [esp + 0x120], ebp
je 0x5804e3
mov eax, ecx
cdq
sub eax, edx
sar eax, 1
mov dword [esp + 0x10c], eax
xor eax, eax
mov dword [esp + 0x110], eax
mov dword [esp + 0x118], ebp
jmp 0x580501
xor eax, eax
mov dword [esp + 0x10c], eax
mov dword [esp + 0x110], eax
mov dword [esp + 0x118], eax
mov eax, ecx
cdq
sub eax, edx
sar eax, 1
mov ebx, dword [esp + 0x20]
mov dword [esp + 0x11c], eax
test ebx, ebx
je 0x580531
mov eax, dword [ebx]
mov edx, dword [eax + 0x28]
mov ecx, ebx
call edx
test al, al
je 0x580531
push ebx
lea ecx, [esp + 0xd0]
call fcn.0049e040
or dword [esp + 0x14], 4
jmp 0x580545
lea eax, [esp + 0x64]
push 0x10
push eax
call fcn.004d79e0
add esp, 8
or dword [esp + 0x14], 8
mov ebp, vtable.wxObject.0
mov dword [esp + 0x30], ebp
mov ecx, dword [eax + 4]
mov dword [esp + 0x34], ecx
mov ebx, 1
test ecx, ecx
je 0x580561
add dword [ecx + 4], ebx
mov dword [esp + 0x30], vtable.wxColour.0
mov ecx, dword [eax + 8]
mov dword [esp + 0x38], ecx
movzx edx, byte [eax + 0xc]
mov byte [esp + 0x3c], dl
movzx ecx, byte [eax + 0xd]
mov byte [esp + 0x3d], cl
movzx edx, byte [eax + 0xe]
mov byte [esp + 0x3e], dl
movzx ecx, byte [eax + 0xf]
mov byte [esp + 0x3f], cl
movzx edx, byte [eax + 0x10]
mov byte [esp + 0x40], dl
test byte [esp + 0x14], 8
mov dword [esp + 0x160], 9
je 0x5805bc
and dword [esp + 0x14], 0xfffffff7
lea ecx, [esp + 0x64]
mov dword [esp + 0x64], ebp
call fcn.00423980
test byte [esp + 0x14], 4
mov byte [esp + 0x160], 0xa
je 0x5805e3
and dword [esp + 0x14], 0xfffffffb
lea ecx, [esp + 0xcc]
mov dword [esp + 0xcc], ebp
call fcn.00423980
push 0x64
push ebx
lea eax, [esp + 0x38]
push eax
lea ecx, [esp + 0x5c]
call fcn.00508e60
mov ecx, dword [edi + 8]
mov dword [esp + 0x58], edi
mov edx, dword [ecx]
mov eax, dword [edx + 0x70]
mov byte [esp + 0x160], 0xb
call eax
mov dword [esp + 0x5c], ebp
mov eax, dword [eax + 4]
mov dword [esp + 0x60], eax
test eax, eax
je 0x58061c
add dword [eax + 4], ebx
mov dword [esp + 0x5c], vtable.wxPen.0
mov ecx, dword [esp + 0x58]
mov ecx, dword [ecx + 8]
mov edx, dword [ecx]
mov edx, dword [edx + 0x6c]
lea eax, [esp + 0x50]
push eax
mov byte [esp + 0x164], 0xc
call edx
lea ecx, [esp + 0x50]
mov byte [esp + 0x160], 0xe
mov dword [esp + 0x50], ebp
call fcn.00423980
push 0x64
lea eax, [esp + 0x34]
push eax
lea ecx, [esp + 0x4c]
call fcn.004f2fb0
mov ecx, dword [edi + 8]
mov dword [esp + 0x8c], edi
mov edx, dword [ecx]
mov eax, dword [edx + 0x78]
mov byte [esp + 0x160], 0xf
call eax
mov dword [esp + 0x90], ebp
mov eax, dword [eax + 4]
mov dword [esp + 0x94], eax
test eax, eax
je 0x580695
add dword [eax + 4], ebx
mov dword [esp + 0x90], vtable.wxBrush.0
mov ecx, dword [esp + 0x8c]
mov ecx, dword [ecx + 8]
mov edx, dword [ecx]
mov edx, dword [edx + 0x74]
lea eax, [esp + 0x44]
push eax
mov byte [esp + 0x164], 0x10
call edx
mov bl, 0x12
lea ecx, [esp + 0x44]
mov byte [esp + 0x160], bl
call fcn.00506650
xor eax, eax
mov dword [esp + 0xa4], eax
mov dword [esp + 0xa8], eax
mov dword [esp + 0xac], eax
mov dword [esp + 0xb0], eax
mov dword [esp + 0xa0], edi
mov ecx, dword [edi + 8]
mov eax, dword [ecx]
mov eax, dword [eax + 0xd0]
lea edx, [esp + 0xa4]
push edx
call eax
mov ecx, dword [esp + 0xa0]
mov byte [esp + 0xb4], al
mov eax, dword [esi + 0xc]
mov ecx, dword [ecx + 8]
mov edx, dword [ecx]
mov edx, dword [edx + 0xc8]
push eax
mov eax, dword [esi + 8]
push eax
mov eax, dword [esi + 4]
push eax
mov eax, dword [esi]
push eax
call edx
mov edx, dword [esp + 0x7c]
mov ecx, dword [edi + 8]
mov eax, dword [ecx]
mov eax, dword [eax + 0x1a8]
push 1
push edx
mov edx, dword [esp + 0x80]
push edx
lea edx, [esp + 0x118]
push edx
push 3
mov byte [esp + 0x174], 0x13
call eax
mov ecx, dword [esp + 0xa0]
mov ecx, dword [ecx + 8]
mov edx, dword [ecx]
mov eax, dword [edx + 0xd8]
mov byte [esp + 0x160], bl
call eax
cmp byte [esp + 0xb4], 0
je 0x5807bb
mov eax, dword [esp + 0xb0]
mov ecx, dword [esp + 0xa0]
mov ecx, dword [ecx + 8]
mov edx, dword [ecx]
mov edx, dword [edx + 0xc8]
push eax
mov eax, dword [esp + 0xb0]
push eax
mov eax, dword [esp + 0xb0]
push eax
mov eax, dword [esp + 0xb0]
push eax
call edx
mov eax, dword [esp + 0x90]
mov edx, dword [eax + 0x10]
lea ecx, [esp + 0x90]
mov byte [esp + 0x160], 0x14
call edx
test al, al
je 0x5807f3
mov eax, dword [esp + 0x8c]
mov ecx, dword [eax + 8]
mov edx, dword [ecx]
mov edx, dword [edx + 0x74]
lea eax, [esp + 0x90]
push eax
call edx
lea ecx, [esp + 0x90]
mov byte [esp + 0x160], 0xe
call fcn.00506650
mov eax, dword [esp + 0x5c]
mov edx, dword [eax + 0x10]
lea ecx, [esp + 0x5c]
mov byte [esp + 0x160], 0x15
call edx
test al, al
je 0x580833
mov eax, dword [esp + 0x58]
mov ecx, dword [eax + 8]
mov edx, dword [ecx]
mov edx, dword [edx + 0x6c]
lea eax, [esp + 0x5c]
push eax
call edx
lea ecx, [esp + 0x5c]
mov byte [esp + 0x160], 0xa
mov dword [esp + 0x5c], ebp
call fcn.00423980
lea ecx, [esp + 0x30]
mov dword [esp + 0x160], 0xffffffff
mov dword [esp + 0x30], ebp
call fcn.00423980
mov ebx, dword [esp + 0x20]
mov ebp, dword [esp + 0x24]
mov dword [esp + 0x4c], 0
test ebx, ebx
je 0x580e01
mov eax, dword [ebx + 0x68]
mov edx, dword [eax + 0x10]
add ebx, 0x68
mov ecx, ebx
call edx
test al, al
je 0x580997
mov ecx, ebx
call fcn.004cf4b0
call fcn.005895e0
mov ecx, ebx
mov ebp, eax
call fcn.004cf4d0
call fcn.005895e0
mov ecx, dword [esp + 0x24]
mov edx, eax
lea eax, [ebp + 2]
mov ebp, dword [esi]
add ecx, eax
mov dword [esp + 0x4c], eax
mov eax, dword [esi + 0xc]
sub eax, edx
cdq
sub eax, edx
sar eax, 1
inc ebp
mov dword [esp + 0x24], ecx
cmp eax, 1
jge 0x5808d1
mov eax, 1
mov edx, dword [esi + 4]
add edx, eax
mov eax, dword [esi + 8]
sub eax, ecx
mov ecx, dword [esp + 0x20]
cmp dword [ecx + 0x38], 0
mov dword [esp + 0x1c], edx
jne 0x580907
test eax, eax
jle 0x580907
mov ecx, dword [ecx + 0x70]
cmp ecx, 0x200
je 0x580905
cmp ecx, 0x900
jne 0x580907
cdq
sub eax, edx
sar eax, 1
add ebp, eax
push esi
push edi
lea ecx, [esp + 0x114]
call fcn.0057d840
mov eax, dword [esp + 0x1c]
mov ecx, dword [edi + 8]
mov edx, dword [ecx]
mov edx, dword [edx + 0x188]
push 1
push eax
push ebp
push ebx
mov dword [esp + 0x170], 0x16
call edx
mov eax, dword [esp + 0x10c]
mov ecx, dword [eax + 8]
mov edx, dword [ecx]
mov eax, dword [edx + 0xd8]
mov dword [esp + 0x160], 0xffffffff
call eax
cmp byte [esp + 0x120], 0
je 0x580993
mov eax, dword [esp + 0x11c]
mov ecx, dword [esp + 0x10c]
mov ecx, dword [ecx + 8]
mov edx, dword [ecx]
mov edx, dword [edx + 0xc8]
push eax
mov eax, dword [esp + 0x11c]
push eax
mov eax, dword [esp + 0x11c]
push eax
mov eax, dword [esp + 0x11c]
push eax
call edx
mov ebp, dword [esp + 0x24]
mov ebx, dword [esp + 0x20]
cmp dword [ebx + 0x38], 0
je 0x580e01
mov eax, dword [ebx + 0x4c]
mov edx, dword [eax + 0x10]
lea ecx, [ebx + 0x4c]
add ebp, 0xa
mov dword [esp + 0x24], ebp
call edx
mov ebp, vtable.wxFont.0
test al, al
je 0x5809eb
mov eax, dword [ebx + 0x50]
mov dword [esp + 0x44], vtable.wxObject.0
mov dword [esp + 0x48], eax
test eax, eax
je 0x5809d6
inc dword [eax + 4]
mov dword [esp + 0x44], ebp
mov ebx, dword [esp + 0x14]
or ebx, 0x10
lea eax, [esp + 0x44]
mov dword [esp + 0x14], ebx
jmp 0x580a02
mov ecx, dword [esp + 0x2c]
lea eax, [esp + 0x64]
push eax
call fcn.0049f340
or dword [esp + 0x14], 0x20
mov ebx, dword [esp + 0x14]
mov dword [esp + 0x50], vtable.wxObject.0
mov eax, dword [eax + 4]
mov dword [esp + 0x54], eax
test eax, eax
je 0x580a18
inc dword [eax + 4]
mov dword [esp + 0x50], ebp
mov dword [esp + 0x160], 0x18
test bl, 0x20
je 0x580a3c
and ebx, 0xffffffdf
lea ecx, [esp + 0x64]
mov dword [esp + 0x14], ebx
call fcn.004b26e0
mov byte [esp + 0x160], 0x19
test bl, 0x10
je 0x580a59
and ebx, 0xffffffef
lea ecx, [esp + 0x44]
mov dword [esp + 0x14], ebx
call fcn.004b26e0
mov ebp, dword [esp + 0x20]
mov edx, dword [ebp + 0x54]
mov eax, dword [edx + 0x28]
add ebp, 0x54
mov ecx, ebp
call eax
test al, al
je 0x580a7d
push ebp
lea ecx, [esp + 0x34]
call fcn.0049e040
or ebx, 0x40
jmp 0x580a94
lea ecx, [esp + 0xcc]
push ecx
mov ecx, dword [esp + 0x30]
call fcn.0049f190
or ebx, 0x80
push eax
lea ecx, [esp + 0xfc]
call fcn.0049e040
mov dword [esp + 0x160], 0x1b
test bl, bl
jns 0x580ad1
and ebx, 0xffffff7f
lea ecx, [esp + 0xcc]
mov dword [esp + 0x14], ebx
mov dword [esp + 0xcc], vtable.wxObject.0
call fcn.00423980
mov byte [esp + 0x160], 0x1c
test bl, 0x40
je 0x580aef
lea ecx, [esp + 0x30]
mov dword [esp + 0x30], vtable.wxObject.0
call fcn.00423980
mov eax, dword [esp + 0x20]
push 0xffffffffffffffff
xor ebx, ebx
push ebx
add eax, 0x28
xor edx, edx
push eax
lea ecx, [esp + 0x13c]
mov dword [esp + 0x150], 7
mov dword [esp + 0x14c], ebx
mov word [esp + 0x13c], dx
call fcn.00402610
mov dword [esp + 0x14c], ebx
mov dword [esp + 0x150], ebx
lea ecx, [esp + 0x50]
push ecx
push edi
lea ecx, [esp + 0xc8]
mov byte [esp + 0x168], 0x1d
call fcn.0057d940
lea edx, [esp + 0xe4]
mov dword [esp + 0xe0], edi
mov dword [esp + 0x2c], edx
mov dword [esp + 0xe8], ebx
mov ecx, edx
mov byte [esp + 0x160], 0x1f
mov dword [esp + 0xe4], vtable.wxColour.0
call fcn.004e68e0
lea eax, [esp + 0xf8]
push eax
lea ecx, [esp + 0xe4]
mov byte [esp + 0x164], 0x20
call fcn.0057d760
mov ecx, dword [edi + 8]
mov edx, dword [ecx]
mov eax, dword [edx + 0x88]
mov byte [esp + 0x160], 0x21
mov dword [esp + 0x14], edi
call eax
mov ecx, dword [edi + 8]
mov edx, dword [ecx]
mov dword [esp + 0x18], eax
mov eax, dword [edx + 0x84]
push 0x6a
call eax
mov ecx, dword [edi + 8]
mov edx, dword [ecx]
mov edx, dword [edx + 0xb8]
push ebx
push ebx
lea eax, [esp + 0xc4]
push eax
lea eax, [esp + 0xc4]
push eax
lea eax, [esp + 0x2c]
push eax
lea eax, [esp + 0x144]
push eax
mov byte [esp + 0x178], 0x22
call edx
mov eax, dword [esi]
mov ecx, dword [esp + 0x4c]
lea ebx, [eax + ecx + 5]
mov eax, dword [esi + 0xc]
sub eax, dword [esp + 0xb8]
mov ebp, dword [esi + 4]
sub eax, dword [esp + 0xbc]
cdq
sub eax, edx
sar eax, 1
mov edx, 0
sets dl
dec edx
and eax, edx
add ebp, eax
mov eax, dword [esi + 8]
mov esi, dword [esp + 0x24]
mov ecx, dword [esp + 0x1c]
sub eax, esi
cmp ecx, eax
jle 0x580cc0
push 0
push eax
push 3
push edi
lea eax, [esp + 0x140]
push eax
lea ecx, [esp + 0x120]
push ecx
call fcn.004cda60
add esp, 0x18
lea edx, [esp + 0x130]
mov byte [esp + 0x160], 0x23
cmp edx, eax
je 0x580c7d
push 0xffffffffffffffff
push 0
push eax
mov ecx, edx
call fcn.00402610
lea ecx, [esp + 0x10c]
mov byte [esp + 0x160], 0x22
call fcn.00405eb0
mov ecx, dword [edi + 8]
mov eax, dword [ecx]
mov eax, dword [eax + 0xb8]
push 0
push 0
push 0
lea edx, [esp + 0x38]
push edx
lea edx, [esp + 0x5c]
push edx
lea edx, [esp + 0x144]
push edx
call eax
mov ecx, dword [esp + 0x4c]
mov dword [esp + 0x1c], ecx
jmp 0x580ce4
mov edx, dword [esp + 0x20]
mov edx, dword [edx + 0x70]
cmp edx, 0x200
je 0x580ce0
cmp edx, 0x900
jne 0x580ce4
sub eax, ecx
cdq
sub eax, edx
sar eax, 1
jmp 0x580ce2
sub eax, ecx
add ebx, eax
mov ecx, dword [edi + 8]
mov eax, dword [ecx]
mov eax, dword [eax + 0x18c]
push ebp
push ebx
lea edx, [esp + 0x138]
push edx
call eax
mov eax, dword [esp + 0x18]
add esi, dword [esp + 0x1c]
mov byte [esp + 0x160], 0x21
cmp eax, 0xffffffff
je 0x580d20
mov edi, dword [edi + 8]
mov edx, dword [edi]
push eax
mov eax, dword [edx + 0x84]
mov ecx, edi
call eax
lea ecx, [esp + 0xe0]
mov byte [esp + 0x160], 0x1e
call fcn.0057cf30
mov edx, dword [esp + 0xc4]
mov eax, dword [edx + 0x10]
lea ecx, [esp + 0xc4]
mov byte [esp + 0x160], 0x24
call eax
test al, al
je 0x580d6c
mov ecx, dword [esp + 0xc0]
mov ecx, dword [ecx + 8]
mov edx, dword [ecx]
mov edx, dword [edx + 0x64]
lea eax, [esp + 0xc4]
push eax
call edx
lea ecx, [esp + 0xc4]
mov byte [esp + 0x160], 0x1d
call fcn.004b26e0
mov eax, dword [esp + 0x14c]
push eax
call fcn.005844d1
add esp, 4
cmp dword [esp + 0x144], 8
jb 0x580daa
mov ecx, dword [esp + 0x130]
push ecx
call fcn.00584768
add esp, 4
xor edx, edx
lea ecx, [esp + 0xf8]
mov dword [esp + 0x144], 7
mov dword [esp + 0x140], 0
mov word [esp + 0x130], dx
mov byte [esp + 0x160], 0x19
mov dword [esp + 0xf8], vtable.wxObject.0
call fcn.00423980
lea ecx, [esp + 0x50]
mov dword [esp + 0x160], 0xffffffff
call fcn.004b26e0
mov eax, esi
jmp 0x580e03
mov eax, ebp
mov ecx, dword [esp + 0x158]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x140]
xor ecx, esp
call fcn.00585b7b
add esp, 0x150
ret 0x18