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

Disassembly:
sub esp, 0x18
mov eax, dword [esp + 0x38]
push ebx
mov ebx, dword [esp + 0x28]
push ebp
push esi
mov esi, ecx
mov ecx, dword [esp + 0x28]
push edi
mov edi, dword [esp + 0x30]
mov dword [esp + 0x18], ecx
mov dword [esi + 0x14], edi
mov word [esi + 0x24], bx
mov edx, dword [edi]
mov ecx, edi
mov dword [esp + 0x10], esi
mov dword [esp + 0x14], eax
call dword [edx + 0x2c]
mov dl, byte [esi + 9]
mov ebp, dword [esp + 0x40]
mov dword [esi + 0x2c], eax
mov cl, byte [eax + 9]
xor cl, dl
and cl, 8
xor dl, cl
mov byte [esi + 9], dl
mov dx, word [edi + 0x18]
mov word [esi + 0x18], dx
mov cl, byte [edi + 0x1b]
mov byte [esi + 0x1b], cl
mov dl, byte [edi + 0x1a]
mov ecx, dword [esp + 0x38]
mov dword [esi + 0x34], ecx
mov byte [esi + 0x1a], dl
mov ecx, dword [edi + 0xc]
mov edx, dword [esp + 0x44]
shl ecx, 0x1a
sar ecx, 0x1a
cmp ecx, 3
jne 0x57df1b
mov cl, byte [esi + 0x127]
mov dword [esi + 0x30], edi
mov edx, dword [eax + 0x38]
mov dword [esi + 0x3c], edx
and cl, 0xfe
jmp 0x57df73
cmp ecx, 4
jne 0x57df4f
mov ecx, dword [edi + 0x30]
mov dword [esi + 0x30], ecx
mov ecx, dword [edi + 0x3c]
mov dword [esi + 0x3c], ecx
mov cl, byte [edi + 0x127]
xor cl, byte [esi + 0x127]
mov dword [esi + 0xb0], ebp
and cl, 1
xor byte [esi + 0x127], cl
mov dword [esi + 0xb4], edx
jmp 0x57df79
mov ecx, dword [edi + 0x34]
mov ecx, dword [ecx + 0x30]
mov dword [esi + 0x30], ecx
mov ecx, dword [edi + 0x30]
mov dword [esi + 0x3c], ecx
mov cl, byte [esi + 0x127]
or cl, 1
mov dword [esi + 0xb0], ebp
mov dword [esi + 0xb4], edx
mov byte [esi + 0x127], cl
mov ecx, dword [esp + 0x4c]
test ecx, ecx
jne 0x57dfaa
mov edx, dword [esi + 0x14]
mov ecx, dword [edx + 0xc]
shl ecx, 0x1a
sar ecx, 0x1a
cmp ecx, 5
jne 0x57df9a
mov edx, dword [edx + 0x30]
mov dword [esi + 0x3c], edx
jmp 0x57dfad
cmp ecx, 4
jne 0x57dfa7
mov eax, dword [edx + 0x3c]
mov dword [esi + 0x3c], eax
jmp 0x57dfad
mov ecx, dword [eax + 0x38]
mov dword [esi + 0x3c], ecx
mov dword [esi + 0x38], edi
mov edx, dword [edi + 0xc]
and dl, 0x3f
cmp dl, 4
jne 0x57dfdd
jmp 0x57dfc0
mov eax, dword [esi + 0x38]
mov ecx, dword [eax + 0x40]
test ecx, ecx
jne 0x57dfdd
mov eax, dword [eax + 0x14]
mov ecx, eax
mov dword [esi + 0x38], eax
mov edx, dword [ecx + 0xc]
and dl, 0x3f
cmp dl, 4
je 0x57dfc0
mov ecx, ebx
call fcn.005718c0
mov ecx, dword [esi + 0x2c]
add ecx, 0xa8
push ecx
push esi
mov ecx, eax
mov dword [esi + 0x28], eax
call fcn.0054cff0
mov ecx, eax
mov dword [esi + 0x28], eax
call fcn.00571bf0
test eax, eax
je 0x57e017
mov ecx, dword [esi + 0x28]
call fcn.00571bf0
push eax
mov ecx, esi
call fcn.004ecf00
mov edx, dword [esi + 0x2c]
mov ecx, dword [esi + 0x28]
add edx, 0xa8
push edx
call fcn.0054c060
mov dword [esp + 0x4c], eax
mov eax, dword [esi + 0x28]
mov ebx, dword [eax + 8]
xor eax, eax
mov ax, word [ebx + 0x2e]
test ax, ax
mov dword [esp + 0x34], ebx
je 0x57e055
mov edx, dword [ebx + 0x38]
xor ecx, ecx
mov cx, word [ebx + 0x30]
push ecx
push edx
push eax
mov ecx, esi
call fcn.00590a30
mov eax, dword [esi + 0x34]
test eax, eax
mov ebp, 2
je 0x57e0a1
or byte [esi + 0x125], 3
mov dl, byte [eax + 0x126]
mov cl, byte [esi + 0x126]
xor cl, dl
mov dl, byte [esi + 0x126]
and cl, 0x10
xor dl, cl
mov byte [esi + 0x126], dl
mov cl, dl
mov dl, byte [eax + 0x126]
xor dl, cl
and dl, 0x40
xor dl, cl
mov byte [esi + 0x126], dl
jmp 0x57e17e
cmp dword [ebx + 0x48], ebp
mov dl, byte [esi + 0x125]
sete al
shl al, 1
xor al, dl
and al, 2
xor dl, al
mov al, dl
test al, 2
mov byte [esi + 0x125], dl
jne 0x57e0dc
mov ecx, dword [ebx + 0x54]
mov dl, byte [esi + 0x126]
cmp ecx, ebp
sete cl
xor cl, dl
and cl, 1
xor dl, cl
mov byte [esi + 0x126], dl
mov cl, byte [esp + 0x3c]
mov dl, al
xor dl, cl
and dl, 1
xor dl, al
mov byte [esi + 0x125], dl
mov eax, dword [ebx + 0x3c]
cmp eax, ebp
je 0x57e0ff
cmp eax, 3
je 0x57e0ff
xor eax, eax
jmp 0x57e104
mov eax, 1
mov cl, byte [esi + 0x126]
shl al, 4
xor al, cl
and al, 0x10
xor cl, al
mov byte [esi + 0x126], cl
cmp dword [ebx + 0x3c], 3
sete al
shl al, 6
xor al, cl
and al, 0x40
xor al, cl
mov byte [esi + 0x126], al
mov ecx, dword [edi + 0xc]
and cl, 0x3f
cmp cl, 4
jne 0x57e14b
test byte [edi + 0x126], 1
je 0x57e14b
or al, 0x11
mov byte [esi + 0x126], al
mov ax, word [ebx + 0xe]
test ax, ax
je 0x57e17e
lea edx, [esp + 0x30]
push edx
movzx eax, ax
lea ecx, [esp + 0x3c]
push ecx
lea ecx, [eax + eax*2]
push 0x3a
lea ecx, [ecx*4 + 0x676b60]
call fcn.00510f40
mov ecx, dword [esp + 0x38]
call fcn.00519130
mov dword [esi + 0x7c], eax
mov al, byte [esi + 0x126]
test al, 0x40
je 0x57e190
or al, 0x20
mov byte [esi + 0x126], al
mov edx, dword [ebx + 0x44]
mov al, byte [esi + 0x125]
cmp edx, ebp
sete dl
shl dl, 2
xor dl, al
and dl, 4
xor al, dl
mov byte [esi + 0x125], al
mov cl, al
mov eax, dword [edi + 0xc]
and al, 0x3f
cmp al, 4
je 0x57e1bc
mov edi, dword [esi + 0x34]
test edi, edi
je 0x57e1ef
test byte [edi + 0x125], 0x40
je 0x57e1ef
mov al, cl
or al, 0x40
mov byte [esi + 0x125], al
mov ecx, dword [edi + 0xc4]
mov dword [esi + 0xc4], ecx
mov edx, dword [edi + 0xc8]
mov dword [esi + 0xc8], edx
and al, 0x7f
jmp 0x57e261
cmp dword [ebx + 0x5c], ebp
sete al
shl al, 6
xor al, cl
and al, 0x40
xor al, cl
test al, 0x40
mov byte [esi + 0x125], al
je 0x57e267
push 0
push 0xc
mov ecx, 0x675c74
call fcn.004e1e00
xor edi, edi
cmp eax, edi
je 0x57e22a
mov dword [eax], 0x61b564
mov dword [eax + 4], edi
mov dword [eax + 8], edi
jmp 0x57e22c
xor eax, eax
push edi
push 0xc
mov ecx, 0x675c74
mov dword [esi + 0xc4], eax
call fcn.004e1e00
cmp eax, edi
je 0x57e251
mov dword [eax], 0x61b564
mov dword [eax + 4], edi
mov dword [eax + 8], edi
jmp 0x57e253
xor eax, eax
mov dword [esi + 0xc8], eax
mov al, byte [esi + 0x125]
or al, 0x80
mov byte [esi + 0x125], al
test byte [esi + 0x126], 0x10
je 0x57e2a1
mov eax, dword [esi + 0x34]
test eax, eax
jne 0x57e2a1
cmp word [ebx + 2], 0
jne 0x57e28c
cmp word [ebx + 4], 0
jne 0x57e28c
cmp word [ebx + 6], 0
jmp 0x57e293
test byte [esi + 0x125], 2
jne 0x57e2a1
mov ecx, esi
push str.Syntax_Error_
call fcn.004ecf00
cmp word [ebx + 0xc], 0
je 0x57e337
push 0
push 0x14
mov ecx, 0x675c08
call fcn.004e1e00
test eax, eax
je 0x57e2d0
push 0
push 0x4f1870
push 0x24
mov ecx, eax
call fcn.004e6730
jmp 0x57e2d2
xor eax, eax
mov dword [esi + 0x78], eax
mov cx, word [ebx + 0xc]
call fcn.00512ac0
mov edi, eax
test edi, edi
je 0x57e337
mov ecx, dword [esi + 0x78]
xor eax, eax
mov ax, word [edi]
lea edx, [esp + 0x30]
push edx
mov dword [esp + 0x34], eax
call fcn.004e6610
test eax, eax
jne 0x57e330
mov ecx, 0x38
call fcn.004dc5a0
test eax, eax
je 0x57e325
mov ecx, dword [esi + 0x2c]
movsx edx, word [ecx + 0x44]
xor ecx, ecx
mov cx, word [edi]
push esi
inc edx
push edx
push ecx
mov ecx, eax
call fcn.00588e50
jmp 0x57e327
xor eax, eax
mov ecx, dword [esi + 0x78]
push eax
call fcn.004e6760
mov edi, dword [edi + 4]
test edi, edi
jne 0x57e2e4
cmp word [ebx + 2], 0
jne 0x57e7c6
cmp word [ebx + 4], 0
jne 0x57e7c6
mov eax, dword [esi + 0x34]
or edi, 0xffffffff
test eax, eax
jne 0x57e375
mov ecx, 0x1c
mov dword [esi + 0x34], esi
call fcn.004dc5a0
test eax, eax
je 0x57e370
mov dword [eax + 0x14], edi
mov dword [eax + 0x18], edi
jmp 0x57e372
xor eax, eax
mov dword [esi + 0x64], eax
mov edx, dword [ebx + 0x58]
mov al, byte [esi + 0x126]
cmp edx, ebp
sete dl
shl dl, 1
xor dl, al
and dl, 2
push 0
xor al, dl
push 8
mov ecx, 0x675c14
mov byte [esi + 0x126], al
call fcn.004e1e00
test eax, eax
je 0x57e3b3
mov dword [eax], 0
mov dword [eax + 4], 0
jmp 0x57e3b5
xor eax, eax
mov dword [esi + 0x60], eax
test byte [esi + 9], 8
je 0x57e3e3
cmp word [ebx + 0x22], 0
je 0x57e3ea
mov ax, word [ebx + 0x28]
test ax, ax
je 0x57e3db
mov word [esi + 0x70], ax
or byte [esi + 0x126], 4
jmp 0x57e3e3
mov ax, word [ebx + 0x26]
mov word [esi + 0x70], ax
cmp word [ebx + 0x22], 0
jne 0x57e427
xor ecx, ecx
mov cx, word [ebx + 6]
test cx, cx
je 0x57e404
lea edx, [esp + 0x10]
push edx
mov edx, 0x57da00
call fcn.004eebf0
xor ecx, ecx
mov cx, word [ebx + 8]
test cx, cx
je 0x57e9a2
lea eax, [esp + 0x10]
push eax
mov edx, 0x57da20
call fcn.004eebf0
jmp 0x57e9a2
mov cx, word [ebx + 6]
call fcn.00512ac0
test eax, eax
mov dword [esp + 0x44], eax
je 0x57e4d3
mov ebx, dword [esp + 0x2c]
mov ebp, dword [esp + 0x48]
mov ecx, dword [esp + 0x44]
mov dx, word [ecx]
mov edi, dword [esp + 0x34]
cmp dx, word [edi + 0x22]
je 0x57e4e3
push 1
push 0xc0
mov ecx, 0x675d1c
call fcn.004e1e00
test eax, eax
je 0x57e479
mov ecx, eax
call fcn.00577f60
mov edi, eax
jmp 0x57e47b
xor edi, edi
mov ecx, dword [esi + 0x60]
push edi
call fcn.0054c1a0
mov ecx, dword [esp + 0x44]
mov eax, dword [esi + 0x34]
push 0
push 1
xor edx, edx
mov dx, word [ecx]
push ebp
push eax
mov ecx, edi
push edx
push 0
push esi
push ebx
call fcn.00578260
test byte [esi + 0x126], 0x10
je 0x57e4c0
cmp dword [esi + 0x34], esi
je 0x57e4b9
mov ecx, edi
call fcn.0057b5b0
jmp 0x57e4c0
or byte [edi + 0x98], 0x80
mov eax, dword [esp + 0x44]
mov eax, dword [eax + 4]
test eax, eax
mov dword [esp + 0x44], eax
jne 0x57e444
push str.Could_not_find_the_Repeated_Line_
mov ecx, esi
call fcn.004ecf00
mov edi, dword [esp + 0x34]
mov ax, word [edi + 0x24]
cmp ax, word [0x732458]
jne 0x57e516
mov ecx, dword [esi + 0x2c]
push 1
call fcn.004ef2a0
test eax, eax
mov dword [esi + 0x40], eax
jne 0x57e600
push str.Could_not_find_the_Collection_
mov ecx, esi
call fcn.004ecf00
jmp 0x57e600
cmp ax, word [0x73245c]
jne 0x57e52d
mov ecx, dword [esi + 0x2c]
push 0
push 1
call fcn.004ef320
jmp 0x57e4fa
mov edx, dword [esi]
xor ecx, ecx
mov cl, byte [esi + 9]
shr ecx, 3
and ecx, 1
push ecx
push esi
push eax
mov ecx, esi
call dword [edx + 0x40]
test eax, eax
mov dword [esi + 0x40], eax
je 0x57e600
test byte [esi + 9], 8
jne 0x57e56c
mov edx, dword [esi + 0x38]
mov ecx, dword [edx + 0xc]
and ecx, 0x3f
cmp cl, 3
jne 0x57e56c
mov ecx, dword [esi + 0x2c]
mov edx, dword [eax]
push ecx
mov ecx, eax
call dword [edx + 0x64]
test byte [esi + 9], 8
je 0x57e600
cmp word [edi + 0x2a], 0
je 0x57e600
call fcn.005109a0
push 0x2000
mov ebp, eax
push esi
xor eax, eax
mov ax, word [edi + 0x2a]
push 0xffffffffffffffff
push esi
push 2
mov ecx, ebp
push eax
call fcn.00512700
test eax, eax
jne 0x57e5f5
lea ecx, [ebp + 0x38]
call fcn.004f6360
mov edi, eax
test edi, edi
jle 0x57e5f5
mov ecx, dword [esi + 0x2c]
mov edx, dword [ecx]
call dword [edx + 0x54]
cmp eax, 0xfffffffc
je 0x57e5da
mov ecx, dword [esi + 0x2c]
mov eax, dword [ecx]
call dword [eax + 0x54]
cmp eax, 0xfffffffa
je 0x57e5da
mov ecx, dword [esi + 0x2c]
mov edx, dword [ecx]
call dword [edx + 0x54]
cmp eax, 0xfffffff9
jne 0x57e5f5
mov eax, dword [esi + 0x40]
mov eax, dword [eax + 0x2c]
cmp eax, edi
jge 0x57e5f5
sub edi, eax
mov ecx, dword [esi + 0x40]
mov edx, dword [ecx]
push 0
push 0
call dword [edx + 0x60]
dec edi
jne 0x57e5e6
mov ecx, ebp
call fcn.00510990
mov edi, dword [esp + 0x34]
mov ecx, dword [esi + 0x40]
test ecx, ecx
je 0x57e656
test byte [esi + 9], 8
je 0x57e624
cmp word [esi + 0x70], 0
je 0x57e624
mov eax, dword [ecx + 0x2c]
test eax, eax
jne 0x57e624
mov eax, dword [ecx]
push 0
push 0
call dword [eax + 0x60]
mov ecx, dword [esi + 0x40]
mov edx, dword [ecx + 0x2c]
lea eax, [esp + 0x10]
push eax
push 0x57dae0
mov dword [esi + 0x6c], edx
call fcn.004fc360
test byte [esi + 9], 8
mov ecx, dword [esi + 0x40]
push 8
je 0x57e64e
push 0x2000
jmp 0x57e650
push 1
push esi
call fcn.004eb090
mov ecx, dword [esp + 0x44]
mov ebp, dword [ecx + 4]
test ebp, ebp
je 0x57e6d5
mov ebx, dword [esp + 0x48]
jmp 0x57e670
push 1
push 0xc0
mov ecx, 0x675d1c
call fcn.004e1e00
test eax, eax
je 0x57e690
mov ecx, eax
call fcn.00577f60
mov edi, eax
jmp 0x57e692
xor edi, edi
mov ecx, dword [esi + 0x60]
push edi
call fcn.0054c1a0
mov edx, dword [esi + 0x34]
mov ecx, dword [esp + 0x2c]
push 0
push 1
xor eax, eax
mov ax, word [ebp]
push ebx
push edx
push eax
push 0
push esi
push ecx
mov ecx, edi
call fcn.00578260
test byte [esi + 0x126], 0x10
je 0x57e6ca
mov ecx, edi
call fcn.0057b5b0
mov ebp, dword [ebp + 4]
test ebp, ebp
jne 0x57e670
mov edi, dword [esp + 0x34]
cmp word [edi + 8], 0
je 0x57e9a2
push 0
lea ecx, [esp + 0x20]
call fcn.004f60c0
mov edx, dword [esi]
xor eax, eax
mov ax, word [0x7324a4]
mov ecx, esi
push eax
call dword [edx + 0x20]
push 1
lea ecx, [esp + 0x20]
push ecx
mov ecx, eax
call fcn.004f19b0
mov ecx, dword [esi + 0x2c]
mov edx, dword [ecx]
call dword [edx + 0x54]
cmp eax, 0xfffffff3
jne 0x57e732
mov eax, dword [esi + 0x28]
mov ecx, dword [eax + 8]
cmp dword [ecx + 0x60], 1
jne 0x57e72b
mov edx, dword [esp + 0x1c]
cmp dword [edx], 2
jne 0x57e732
mov ebx, 1
jmp 0x57e73c
mov eax, dword [esi + 0x34]
xor ebx, ebx
cmp eax, esi
setne bl
mov eax, dword [esp + 0x34]
mov cx, word [eax + 8]
call fcn.00512ac0
mov ebp, eax
test ebp, ebp
je 0x57e7b8
nop
push 1
push 0xc0
mov ecx, 0x675d1c
call fcn.004e1e00
test eax, eax
je 0x57e770
mov ecx, eax
call fcn.00577f60
mov edi, eax
jmp 0x57e772
xor edi, edi
mov ecx, dword [esi + 0x60]
push edi
call fcn.0054c1a0
mov ecx, dword [esp + 0x48]
mov edx, dword [esi + 0x34]
push 0
push ebx
push ecx
mov ecx, dword [esp + 0x38]
xor eax, eax
mov ax, word [ebp]
push edx
push eax
push 0
push esi
push ecx
mov ecx, edi
call fcn.00578260
test byte [esi + 0x126], 0x10
je 0x57e7b1
test ebx, ebx
je 0x57e7b1
mov ecx, edi
call fcn.0057b5b0
mov ebp, dword [ebp + 4]
test ebp, ebp
jne 0x57e750
lea ecx, [esp + 0x1c]
call fcn.004f6160
jmp 0x57e9a2
push 0
push 8
mov ecx, 0x675c14
call fcn.004e1e00
test eax, eax
je 0x57e7e7
mov dword [eax], 0
mov dword [eax + 4], 0
jmp 0x57e7e9
xor eax, eax
mov dword [esi + 0x58], eax
test byte [esi + 0x126], 0x10
je 0x57e81d
mov eax, dword [esi + 0x34]
test eax, eax
jne 0x57e81d
mov ecx, 0x1c
mov dword [esi + 0x34], esi
call fcn.004dc5a0
test eax, eax
je 0x57e818
or ecx, 0xffffffff
mov dword [eax + 0x14], ecx
mov dword [eax + 0x18], ecx
jmp 0x57e81a
xor eax, eax
mov dword [esi + 0x64], eax
test byte [esi + 9], 8
jne 0x57e92f
test byte [esi + 0x126], 0x10
je 0x57e92f
cmp dword [esi + 0x34], esi
jne 0x57e92f
cmp word [ebx + 0x22], 0
je 0x57e92f
mov edi, dword [esp + 0x34]
mov cx, word [edi + 2]
call fcn.00512ac0
mov ebx, eax
mov eax, dword [ebx + 4]
test eax, eax
je 0x57e86a
push str.Only_ONE_part_name_allowed_
mov ecx, esi
call fcn.004ecf00
mov dx, word [ebx]
cmp dx, word [edi + 0x22]
je 0x57e87f
push str.Could_not_find_the_Repeated_Part_
mov ecx, esi
call fcn.004ecf00
mov eax, dword [esi]
xor ecx, ecx
mov cx, word [edi + 0x24]
push 0
push esi
push ecx
mov ecx, esi
call dword [eax + 0x40]
test eax, eax
mov dword [esi + 0x40], eax
je 0x57e9a2
mov ecx, eax
call fcn.004fb200
mov edi, eax
test edi, edi
je 0x57e9a2
lea esp, [esp]
mov ecx, pe_nt_image_headers32
call fcn.004dc5a0
mov ebp, eax
test ebp, ebp
je 0x57e8ef
push 4
push 0
mov ecx, ebp
call fcn.004eceb0
mov dword [ebp], 0x63ac98
mov dx, word [0x663ac8]
mov word [ebp + 0xb8], dx
mov ax, word [0x663ac8]
mov word [ebp + 0xba], ax
jmp 0x57e8f1
xor ebp, ebp
mov ecx, dword [esi + 0x58]
push ebp
call fcn.0054c1a0
mov ecx, dword [esp + 0x44]
mov edx, dword [esp + 0x40]
mov eax, dword [esi + 0x34]
push edi
push 0
push ecx
push edx
mov edx, dword [esp + 0x3c]
xor ecx, ecx
mov cx, word [ebx]
push 1
push eax
push ecx
push esi
push edx
mov ecx, ebp
call fcn.0057de90
mov ecx, edi
call fcn.004ecf70
mov edi, eax
test edi, edi
jne 0x57e8b0
jmp 0x57e9a2
xor ecx, ecx
mov cx, word [ebx + 2]
test cx, cx
je 0x57e967
call fcn.00512ac0
mov edi, eax
test edi, edi
je 0x57e967
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
xor ecx, ecx
mov cx, word [edi]
push 1
push eax
push ecx
mov ecx, dword [esp + 0x1c]
push edx
call fcn.0057de00
mov edi, dword [edi + 4]
test edi, edi
jne 0x57e945
xor ecx, ecx
mov cx, word [ebx + 4]
test cx, cx
je 0x57e9a2
call fcn.00512ac0
mov edi, eax
test edi, edi
je 0x57e9a2
lea ecx, [ecx]
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
xor ecx, ecx
mov cx, word [edi]
push 0
push eax
push ecx
mov ecx, dword [esp + 0x1c]
push edx
call fcn.0057de00
mov edi, dword [edi + 4]
test edi, edi
jne 0x57e980
mov eax, dword [esp + 0x4c]
test eax, eax
je 0x57e9bd
mov ecx, dword [esi + 0x2c]
add ecx, 0xa8
push ecx
mov ecx, dword [esi + 0x28]
push eax
call fcn.0054c0a0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x18
ret 0x24