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

Disassembly:
sub esp, 0x38
push ebx
push esi
mov esi, dword [esp + 0x48]
mov ebx, dword [esi + 0x44]
mov dword [esp + 0x10], ebx
test ebx, ebx
je 0x100abfcc
mov eax, dword [esp + 0x44]
push ebp
push edi
mov edi, dword [eax + 0x14]
mov ebp, dword [edi + 0x2c]
mov dword [esp + 0x28], ebp
cmp ebp, 4
jne 0x100ab5b6
mov ebp, 2
mov dword [esp + 0x28], ebp
mov edx, dword [esp + 0x54]
mov ecx, 0x100bdbb0
mov dword [esp + 0x2c], eax
mov eax, dword [esi + 0xc]
mov dword [esp + 0x38], eax
mov eax, dword [esi + 0x20]
mov dword [esp + 0x30], esi
mov dword [esp + 0x34], edx
mov dword [esp + 0x3c], eax
mov eax, dword [edi + 0x18]
test eax, eax
cmovne ecx, eax
mov dword [esp + 0x40], ecx
mov ecx, 0x100bb610
mov eax, dword [edi + 0x1c]
test eax, eax
cmovne ecx, eax
test ebp, ebp
mov dword [esp + 0x44], ecx
sete byte [esp + 0x24]
test ebp, ebp
je 0x100ab612
cmp ebp, 1
je 0x100ab60b
cmp ebp, 3
jne 0x100ab612
mov byte [esp + 0x14], 0
jmp 0x100ab617
mov byte [esp + 0x14], 1
mov eax, dword [esi + 0x50]
xor edi, edi
mov byte [esp + 0x50], 1
mov word [esi + 0x3e], 1
mov dword [esi + 0x48], 0
mov dword [esi + 0x54], eax
mov dword [esi + 0x40], 0
nop dword [eax + eax]
lea ebp, [edi + 1]
mov dword [esp + 0x20], ebp
cmp ebp, ebx
jae 0x100ab681
mov eax, dword [esi + 0x50]
lea ecx, [ebp*4 + 4]
add ecx, ebp
lea ecx, [eax + ecx*4]
nop word [eax + eax]
movzx eax, word [ecx]
and eax, 0x1f
sub eax, 0xa
cmp eax, 2
jbe 0x100ab67c
inc ebp
add ecx, 0x14
mov dword [esp + 0x20], ebp
cmp ebp, ebx
jb 0x100ab660
jmp 0x100ab681
dec ebp
mov dword [esp + 0x20], ebp
cmp byte [esp + 0x14], 0
je 0x100ab725
mov eax, dword [esi + 0x50]
lea ecx, [edi + edi*4]
lea edx, [eax + ecx*4]
mov eax, dword [esp + 0x54]
mov ecx, ebp
lea ebx, [edx + 0xc]
sub ecx, edi
mov edi, dword [eax + 0x74]
mov eax, dword [edi + 0xc]
test eax, eax
je 0x100ab6ad
mov eax, dword [eax + 0xc]
push eax
mov eax, dword [edi + 0x20]
push 0x14
push ebx
mov ebx, dword [esp + 0x60]
push 0x14
push edx
push ecx
push dword [ebx + 0x78]
push ebx
call eax
add esp, 0x20
mov edi, eax
cmp byte [esi + 0x3e], 0
je 0x100ab71a
mov ecx, dword [esi + 0x54]
cmp ecx, dword [esi + 0x50]
jne 0x100ab6dd
mov ecx, dword [esi + 0x48]
cmp ecx, dword [esi + 0x40]
je 0x100ab717
push edi
push edi
mov ecx, esi
call fcn.100e2190
test al, al
je 0x100aba5c
lea eax, [edi + edi*4]
shl eax, 2
push eax
mov eax, dword [esi + 0x40]
lea ecx, [eax + eax*4]
mov eax, dword [esi + 0x50]
lea eax, [eax + ecx*4]
push eax
mov eax, dword [esi + 0x48]
lea ecx, [eax + eax*4]
mov eax, dword [esi + 0x54]
lea eax, [eax + ecx*4]
push eax
call sub.VCRUNTIME140.dll_memmove
add esp, 0xc
add dword [esi + 0x48], edi
add dword [esi + 0x40], edi
mov edx, dword [esp + 0x34]
mov ebx, dword [esp + 0x18]
mov eax, dword [esi + 0x40]
cmp eax, ebp
jae 0x100ab99a
cmp byte [esi + 0x3c], 0
je 0x100ab996
cmp byte [esp + 0x14], 0
mov ebx, dword [esp + 0x30]
mov eax, dword [ebx + 0x40]
lea ecx, [eax + eax*4]
mov eax, dword [ebx + 0x50]
mov ebp, dword [eax + ecx*4]
mov dword [esp + 0x10], 0
je 0x100ab79b
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x10], eax
mov ecx, dword [edx + 0x74]
mov eax, dword [ecx + 0xc]
test eax, eax
je 0x100ab76e
mov eax, dword [eax + 8]
push eax
lea eax, [esp + 0x14]
push eax
mov eax, dword [ecx + 0x1c]
push ebp
push dword [edx + 0x78]
push edx
call eax
add esp, 0x14
test eax, eax
je 0x100ab79b
mov eax, dword [ebx + 0x40]
mov edx, dword [ebx + 0x50]
lea edi, [eax + eax*4]
mov eax, dword [esp + 0x10]
mov dword [edx + edi*4 + 0xc], eax
jmp 0x100ab97e
push ebp
push dword [esp + 0x18]
lea eax, [esp + 0x34]
push eax
call fcn.100bd750
add esp, 0xc
test eax, eax
je 0x100ab7b9
inc dword [ebx + 0x40]
jmp 0x100ab985
cmp byte [esp + 0x14], 0
jne 0x100ab7f4
mov ecx, dword [esp + 0x34]
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x10], eax
mov edx, dword [ecx + 0x74]
mov eax, dword [edx + 0xc]
test eax, eax
je 0x100ab7d9
mov eax, dword [eax + 8]
push eax
lea eax, [esp + 0x14]
push eax
mov eax, dword [edx + 0x1c]
push ebp
push dword [ecx + 0x78]
push ecx
call eax
add esp, 0x14
test eax, eax
jne 0x100ab96d
mov eax, dword [ebx + 0x40]
lea ecx, [eax + eax*4]
mov eax, dword [ebx + 0x50]
mov al, byte [eax + ecx*4 + 0x10]
and al, 0x1f
cmp al, 0x1d
jne case.0x100ab851.8203
cmp ebp, 0x2000
ja 0x100ab82d
je case.0x100ab851.8194
cmp ebp, 0x20
je 0x100ab826
cmp ebp, 0xa0
jne 0x100ab96d
mov edi, 0x12
jmp 0x100ab8a3
cmp ebp, 0x3000
ja case.0x100ab851.8203
je case.0x100ab851.8193
lea eax, [ebp - 0x2001]
cmp eax, 0x5e
ja case.0x100ab851.8203
movzx eax, byte [eax + 0x100ac004]
jmp dword [eax*4 + 0x100abfd4]
mov edi, 2
jmp 0x100ab8a3
mov edi, 3
jmp 0x100ab8a3
mov edi, 4
jmp 0x100ab8a3
mov edi, 6
jmp 0x100ab8a3
mov edi, 0x13
jmp 0x100ab8a3
mov edi, 0x14
jmp 0x100ab8a3
mov edi, 5
jmp 0x100ab8a3
mov edi, 0x10
jmp 0x100ab8a3
mov edi, 0x15
jmp 0x100ab8a3
mov edi, 0x11
jmp 0x100ab8a3
mov edi, 1
mov ecx, dword [esp + 0x34]
mov dword [esp + 0x1c], 0
mov edx, dword [ecx + 0x74]
mov eax, dword [edx + 0xc]
test eax, eax
je 0x100ab8bc
mov eax, dword [eax + 8]
push eax
lea eax, [esp + 0x20]
push eax
mov eax, dword [edx + 0x1c]
push 0x20
push dword [ecx + 0x78]
push ecx
call eax
add esp, 0x14
test eax, eax
jne 0x100ab8df
mov eax, dword [ebx + 0x1c]
mov dword [esp + 0x1c], eax
test eax, eax
je case.0x100ab851.8203
mov eax, dword [ebx + 0x40]
lea ecx, [eax + eax*4]
mov eax, dword [ebx + 0x50]
movzx edx, word [eax + ecx*4 + 0x10]
lea ecx, [eax + ecx*4]
mov al, dl
and al, 0x1f
cmp al, 0x1d
jne 0x100ab904
shl edi, 8
movzx eax, dl
or edi, eax
mov word [ecx + 0x10], di
mov eax, dword [ebx + 0x40]
mov ecx, dword [ebx + 0x50]
lea edx, [eax + eax*4]
mov eax, dword [esp + 0x1c]
mov dword [ecx + edx*4 + 0xc], eax
mov ecx, ebx
call fcn.100e3b90
or dword [ebx + 0x90], 4
jmp 0x100ab985
cmp ebp, 0x2011
jne 0x100ab96d
mov ecx, dword [esp + 0x34]
mov dword [esp + 0x1c], 0
mov edx, dword [ecx + 0x74]
mov eax, dword [edx + 0xc]
test eax, eax
je 0x100ab946
mov eax, dword [eax + 8]
push eax
lea eax, [esp + 0x20]
push eax
mov eax, dword [edx + 0x1c]
push 0x2010
push dword [ecx + 0x78]
push ecx
call eax
add esp, 0x14
test eax, eax
je 0x100ab96d
mov eax, dword [ebx + 0x40]
lea edx, [eax + eax*4]
mov eax, dword [esp + 0x1c]
jmp 0x100ab977
mov eax, dword [ebx + 0x40]
lea edx, [eax + eax*4]
mov eax, dword [esp + 0x10]
mov ecx, dword [ebx + 0x50]
mov dword [ecx + edx*4 + 0xc], eax
mov ecx, ebx
call fcn.100e3b90
mov eax, dword [esi + 0x40]
mov edx, dword [esp + 0x34]
cmp eax, dword [esp + 0x20]
jb 0x100ab730
mov ebx, dword [esp + 0x18]
cmp eax, ebx
je 0x100aba58
cmp byte [esi + 0x3c], 0
je 0x100aba58
lea edi, [eax + 1]
mov byte [esp + 0x50], 0
cmp edi, ebx
jae 0x100ab9da
mov eax, dword [esi + 0x50]
lea ecx, [edi + 1]
lea ecx, [edi + ecx*4]
lea ecx, [eax + ecx*4]
movzx eax, word [ecx]
and eax, 0x1f
sub eax, 0xa
cmp eax, 2
ja 0x100ab9da
inc edi
add ecx, 0x14
cmp edi, ebx
jb 0x100ab9c4
mov ebp, dword [esp + 0x30]
mov ecx, dword [ebp + 0x40]
cmp ecx, edi
jae 0x100aba47
lea ebx, [ecx + ecx*4]
shl ebx, 2
cmp byte [ebp + 0x3c], 0
je 0x100aba1f
mov eax, dword [ebp + 0x50]
mov edx, dword [ebx + eax]
lea eax, [edx - 0xfe00]
cmp eax, 0xf
jbe 0x100abd24
lea eax, [edx - 0xe0100]
cmp eax, 0xef
jbe 0x100abd24
inc ecx
add ebx, 0x14
cmp ecx, edi
jb 0x100ab9f1
mov ebx, dword [esp + 0x30]
cmp byte [ebx + 0x3c], 0
je 0x100aba3f
push dword [esp + 0x24]
lea eax, [esp + 0x30]
push eax
call fcn.100bd8a0
add esp, 8
cmp dword [ebp + 0x40], edi
jb 0x100aba23
mov ebx, dword [esp + 0x18]
mov edx, dword [esp + 0x34]
mov edi, dword [esi + 0x40]
cmp edi, ebx
jae 0x100aba58
cmp byte [esi + 0x3c], 0
jne 0x100ab640
mov ebx, dword [esp + 0x54]
cmp byte [esi + 0x3c], 0
je 0x100abacc
mov edi, dword [esi + 0x44]
mov ecx, dword [esi + 0x40]
sub edi, ecx
cmp byte [esi + 0x3e], 0
je 0x100abab6
mov eax, dword [esi + 0x54]
cmp eax, dword [esi + 0x50]
jne 0x100aba7d
cmp dword [esi + 0x48], ecx
je 0x100abab3
push edi
push edi
mov ecx, esi
call fcn.100e2190
test al, al
je 0x100abacc
lea eax, [edi + edi*4]
shl eax, 2
push eax
mov eax, dword [esi + 0x40]
lea ecx, [eax + eax*4]
mov eax, dword [esi + 0x50]
lea eax, [eax + ecx*4]
push eax
mov eax, dword [esi + 0x48]
lea ecx, [eax + eax*4]
mov eax, dword [esi + 0x54]
lea eax, [eax + ecx*4]
push eax
call sub.VCRUNTIME140.dll_memmove
add esp, 0xc
add dword [esi + 0x48], edi
mov eax, dword [esi + 0x54]
mov ecx, dword [esi + 0x50]
cmp eax, ecx
je 0x100abac6
mov dword [esi + 0x58], ecx
mov dword [esi + 0x50], eax
mov eax, dword [esi + 0x48]
mov dword [esi + 0x44], eax
cmp byte [esp + 0x50], 0
mov eax, dword [esi + 0x50]
mov byte [esi + 0x3e], 0
mov dword [esi + 0x48], 0
mov dword [esi + 0x54], eax
mov dword [esi + 0x40], 0
jne 0x100abbae
push str.start_reorder
push ebx
push esi
call fcn.100e3110
add esp, 0xc
test al, al
je 0x100abbae
mov ebp, dword [esi + 0x44]
xor ebx, ebx
test ebp, ebp
je 0x100abb9c
mov edx, dword [esi + 0x50]
lea eax, [ebx + ebx*4]
movzx ecx, word [edx + eax*4 + 0x10]
mov eax, ecx
and eax, 0x1f
sub eax, 0xa
cmp eax, 2
ja 0x100abb93
cmp ecx, 0x100
jb 0x100abb93
lea edi, [ebx + 1]
cmp edi, ebp
jae 0x100abb63
lea ecx, [edi + 1]
lea ecx, [edi + ecx*4]
lea ecx, [edx + ecx*4]
movzx edx, word [ecx]
mov eax, edx
and eax, 0x1f
sub eax, 0xa
cmp eax, 2
ja 0x100abb63
cmp edx, 0x100
jb 0x100abb63
inc edi
add ecx, 0x14
cmp edi, ebp
jb 0x100abb43
mov eax, edi
sub eax, ebx
cmp eax, 0x20
ja 0x100abb91
push 0x100b9270
push edi
push ebx
mov ecx, esi
call fcn.100fb940
mov ecx, dword [esp + 0x4c]
mov eax, dword [ecx + 0x14]
mov eax, dword [eax + 0x24]
test eax, eax
je 0x100abb91
push edi
push ebx
push esi
push ecx
call eax
add esp, 0x10
mov ebx, edi
inc ebx
cmp ebx, ebp
jb 0x100abb13
push str.end_reorder
push dword [esp + 0x58]
push esi
call fcn.100e3110
add esp, 0xc
test byte [esi + 0x90], 0x10
je 0x100abc2a
cmp dword [esi + 0x44], 2
jbe 0x100abc2a
mov ecx, 0x14
mov ebp, 2
mov dword [esp + 0x20], ecx
nop dword [eax + eax]
mov ebx, dword [esi + 0x50]
add ebx, ecx
cmp dword [ebx], 0x34f
jne 0x100abc1d
movzx edi, word [ebx + 0x24]
mov eax, edi
and eax, 0x1f
sub eax, 0xa
cmp eax, 2
ja 0x100abc14
shr edi, 8
test edi, edi
je 0x100abc14
movzx edx, word [ebx - 4]
xor eax, eax
mov ecx, edx
shr edx, 8
and ecx, 0x1f
sub ecx, 0xa
cmp ecx, 2
mov ecx, dword [esp + 0x20]
cmovbe eax, edx
cmp eax, edi
ja 0x100abc1d
mov eax, 0xffbf
and word [ebx + 0x10], ax
add ecx, 0x14
inc ebp
mov dword [esp + 0x20], ecx
cmp ebp, dword [esi + 0x44]
jb 0x100abbd0
cmp byte [esp + 0x50], 0
jne 0x100abfca
cmp byte [esi + 0x3c], 0
je 0x100abfca
mov eax, dword [esp + 0x28]
cmp eax, 2
je 0x100abc51
cmp eax, 3
jne 0x100abfca
mov eax, dword [esi + 0x50]
xor ebp, ebp
mov ecx, dword [esi + 0x44]
mov dword [esi + 0x40], 0
mov dword [esi + 0x48], 0
inc dword [esi + 0x48]
mov dword [esi + 0x54], eax
mov dword [esi + 0x40], 1
mov eax, dword [esi + 0x40]
mov word [esi + 0x3e], 1
mov dword [esp + 0x14], ecx
mov dword [esp + 0x50], ebp
cmp eax, ecx
jae 0x100abf84
nop dword [eax]
lea ecx, [eax + eax*4]
mov eax, dword [esi + 0x50]
lea ebx, [eax + ecx*4]
movzx eax, word [ebx + 0x10]
and eax, 0x1f
sub eax, 0xa
cmp eax, 2
ja 0x100abef1
mov ecx, dword [esi + 0x48]
lea eax, [ecx - 1]
cmp ebp, eax
je 0x100abcdf
xor edx, edx
test ecx, ecx
cmove eax, edx
lea ecx, [eax + eax*4]
mov eax, dword [esi + 0x54]
lea eax, [eax + ecx*4]
push eax
call fcn.100aab70
push ebx
mov edi, eax
call fcn.100aab70
add esp, 8
cmp edi, eax
jae 0x100abef1
lea edi, [ebp*4]
lea eax, [esp + 0x28]
add edi, ebp
push eax
mov eax, dword [esi + 0x54]
push dword [ebx]
shl edi, 2
push dword [edi + eax]
lea eax, [esp + 0x38]
push eax
call dword [esp + 0x54]
add esp, 0x10
test al, al
je 0x100abef1
mov edx, dword [esp + 0x54]
mov dword [esp + 0x24], 0
mov ecx, dword [edx + 0x74]
mov eax, dword [ecx + 0xc]
test eax, eax
jne 0x100abd3b
jmp 0x100abd3e
push dword [esp + 0x24]
lea eax, [esp + 0x30]
push edi
push eax
call fcn.100cd0d0
add esp, 0xc
jmp 0x100aba3f
mov eax, dword [eax + 8]
push eax
lea eax, [esp + 0x28]
push eax
push dword [esp + 0x30]
mov eax, dword [ecx + 0x1c]
push dword [edx + 0x78]
push edx
call eax
add esp, 0x14
test eax, eax
je 0x100abef1
cmp byte [esi + 0x3e], 0
je 0x100abdae
mov eax, dword [esi + 0x54]
cmp eax, dword [esi + 0x50]
jne 0x100abd72
mov eax, dword [esi + 0x48]
cmp eax, dword [esi + 0x40]
je 0x100abdab
push 1
push 1
mov ecx, esi
call fcn.100e2190
test al, al
je 0x100abf84
mov eax, dword [esi + 0x40]
lea ecx, [eax + eax*4]
mov eax, dword [esi + 0x50]
movups xmm0, xmmword [eax + ecx*4]
lea edx, [eax + ecx*4]
mov eax, dword [esi + 0x48]
lea ecx, [eax + eax*4]
mov eax, dword [esi + 0x54]
movups xmmword [eax + ecx*4], xmm0
lea ecx, [eax + ecx*4]
mov eax, dword [edx + 0x10]
mov dword [ecx + 0x10], eax
inc dword [esi + 0x48]
mov eax, dword [esi + 0x48]
mov ecx, esi
inc dword [esi + 0x40]
push eax
push ebp
call fcn.100e2fc0
mov ecx, dword [esi + 0x54]
dec dword [esi + 0x48]
mov eax, dword [esp + 0x28]
mov dword [edi + ecx], eax
mov ecx, dword [esi + 0x54]
mov eax, dword [esp + 0x24]
mov dword [edi + ecx + 0xc], eax
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 0x54]
add ecx, edi
mov dword [esp + 0x1c], eax
mov dword [esp + 0x18], ecx
push dword [eax + 0x38]
mov ebx, dword [ecx]
push ebx
push eax
mov eax, dword [eax + 0x18]
call eax
add esp, 0xc
mov dword [esp + 0x20], eax
mov edi, eax
cmp ebx, 0x80
jb 0x100abee4
mov ebp, dword [esi + 0x90]
or ebp, 1
push ebx
mov dword [esi + 0x90], ebp
call fcn.100de9f0
add esp, 4
mov ecx, edi
test eax, eax
je 0x100abe84
or ebp, 2
or edi, 0x20
mov dword [esi + 0x90], ebp
cmp ebx, 0x200c
jne 0x100abe40
or edi, 0x200
jmp 0x100abe84
cmp ebx, 0x200d
jne 0x100abe50
or edi, 0x100
jmp 0x100abe84
lea eax, [ebx - 0x180b]
cmp eax, 2
jbe 0x100abe81
lea eax, [ebx - 0x180f]
test eax, eax
je 0x100abe81
lea eax, [ebx - 0xe0020]
cmp eax, 0x5f
jbe 0x100abe81
cmp ebx, 0x34f
jne 0x100abe84
or ebp, 0x10
mov dword [esi + 0x90], ebp
or edi, 0x40
cmp ecx, 0x20
jae 0x100abee0
lea eax, [ecx - 0xa]
cmp eax, 2
ja 0x100abee0
cmp ebx, 0x1a60
jne 0x100abea0
mov eax, 0xfe
jmp 0x100abed6
cmp ebx, 0xfc6
jne 0x100abeaf
mov eax, 0xfe
jmp 0x100abed6
cmp ebx, 0xf39
jne 0x100abebe
mov eax, 0x7f
jmp 0x100abed6
mov eax, dword [esp + 0x1c]
push dword [eax + 0x30]
push ebx
push eax
mov eax, dword [eax + 0x10]
call eax
add esp, 0xc
movzx eax, byte [eax + 0x101526a8]
shl eax, 8
or eax, 0x80
or edi, eax
mov ebp, dword [esp + 0x50]
mov eax, dword [esp + 0x18]
mov word [eax + 0x10], di
jmp 0x100abf77
cmp byte [esi + 0x3e], 0
je 0x100abf3f
mov eax, dword [esi + 0x54]
cmp eax, dword [esi + 0x50]
jne 0x100abf07
mov eax, dword [esi + 0x48]
cmp eax, dword [esi + 0x40]
je 0x100abf3c
push 1
push 1
mov ecx, esi
call fcn.100e2190
test al, al
je 0x100abf84
mov eax, dword [esi + 0x40]
lea ecx, [eax + eax*4]
mov eax, dword [esi + 0x50]
movups xmm0, xmmword [eax + ecx*4]
lea edx, [eax + ecx*4]
mov eax, dword [esi + 0x48]
lea ecx, [eax + eax*4]
mov eax, dword [esi + 0x54]
movups xmmword [eax + ecx*4], xmm0
lea ecx, [eax + ecx*4]
mov eax, dword [edx + 0x10]
mov dword [ecx + 0x10], eax
inc dword [esi + 0x48]
mov edx, dword [esi + 0x48]
mov ecx, edx
inc dword [esi + 0x40]
neg ecx
sbb ecx, ecx
lea eax, [edx - 1]
and ecx, eax
mov eax, dword [esi + 0x54]
lea ecx, [ecx + ecx*4]
movzx ecx, word [eax + ecx*4 + 0x10]
mov eax, ecx
and eax, 0x1f
sub eax, 0xa
cmp eax, 2
ja 0x100abf70
cmp ecx, 0x100
jae 0x100abf77
lea ebp, [edx - 1]
mov dword [esp + 0x50], ebp
mov eax, dword [esi + 0x40]
cmp eax, dword [esp + 0x14]
jb 0x100abc90
cmp byte [esi + 0x3c], 0
je 0x100abfb2
mov eax, dword [esi + 0x44]
mov ecx, esi
sub eax, dword [esi + 0x40]
push eax
call fcn.100e3bf0
test al, al
je 0x100abfb2
mov eax, dword [esi + 0x54]
mov ecx, dword [esi + 0x50]
cmp eax, ecx
je 0x100abfac
mov dword [esi + 0x58], ecx
mov dword [esi + 0x50], eax
mov eax, dword [esi + 0x48]
mov dword [esi + 0x44], eax
mov eax, dword [esi + 0x50]
mov byte [esi + 0x3e], 0
mov dword [esi + 0x48], 0
mov dword [esi + 0x54], eax
mov dword [esi + 0x40], 0
pop edi
pop ebp
pop esi
pop ebx
add esp, 0x38
ret