Function at 0x10d94d00
Capabilities:
Access peb ldr_data
Resolve function by parsing pe exports

Disassembly:
push 0xffffffffffffffff
push 0x10e30dcd
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x5c
push ebx
xor ebx, ebx
push ebp
push esi
mov dword [esp + 0xc], ebx
push edi
mov esi, ecx
mov dword [esp + 0x20], ebx
mov dword [esp + 0x24], ebx
mov dword [esp + 0x28], ebx
mov dword [esp + 0x74], ebx
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x30], ebx
mov dword [esp + 0x34], ebx
mov eax, dword [esi + 0x1c]
mov dword [esp + 0x14], eax
mov word [eax], bx
mov eax, dword [esi + 0x20]
or edi, 0xffffffff
cmp eax, edi
mov byte [esp + 0x74], 1
jge 0x10d94d5c
mov dword [esi + 0x20], edi
mov ebp, dword [esp + 0x7c]
cmp dword [ebp + 0x38], 1
jle 0x10d94f56
cmp dword [esi + 0x20], ebx
jge 0x10d94f56
mov eax, dword [esi + 0x40]
cmp dword [esi + 0x44], eax
jl 0x10d94d83
cmp eax, edi
jne 0x10d94f0c
mov eax, dword [esp + 0x90]
cmp eax, ebx
je 0x10d94da4
push eax
lea ecx, [esp + 0x3c]
call fcn.10902ec0
mov byte [esp + 0x74], 2
mov ebx, 1
jmp 0x10d94ddc
mov ecx, dword [0x110a36dc]
mov eax, dword [ebp + 0x24]
mov edi, dword [ecx + eax*4]
push ebp
mov ecx, esi
add edi, 0xc
call fcn.10d91c60
push eax
push edi
lea edx, [esp + 0x1c]
push str._s___Static__s_Array__
push edx
call fcn.109bc8a0
add esp, 0x10
mov dword [esp + 0x74], 3
mov ebx, 2
push eax
lea ecx, [esp + 0x24]
mov dword [esp + 0x14], ebx
call fcn.109057e0
test bl, 2
mov dword [esp + 0x74], 2
je 0x10d94e07
and ebx, 0xfffffffd
lea ecx, [esp + 0x14]
mov dword [esp + 0x10], ebx
call fcn.10902a90
test bl, 1
mov dword [esp + 0x74], 1
je 0x10d94e1d
lea ecx, [esp + 0x38]
call fcn.10902a90
mov eax, dword [ebp + 0x38]
push eax
lea ecx, [esp + 0x3c]
push str._i_Elements
push ecx
call fcn.109bc8a0
add esp, 0xc
push eax
lea ecx, [esp + 0x30]
mov byte [esp + 0x78], 4
call fcn.109057e0
lea ecx, [esp + 0x38]
mov byte [esp + 0x74], 1
call fcn.10902a90
mov eax, dword [esp + 0x30]
test eax, eax
mov edx, dword [esp + 0x2c]
jne 0x10d94e61
mov edx, 0x10e43c3c
mov eax, dword [esp + 0x24]
test eax, eax
mov eax, dword [esp + 0x20]
jne 0x10d94e72
mov eax, 0x10e43c3c
mov ecx, dword [esi + 0x80]
mov ebx, dword [esp + 0x88]
mov edi, dword [ecx]
push edx
mov edx, dword [esp + 0x90]
push eax
push edx
push ebx
call dword [edi + 0x30]
mov edx, dword [esi + 0x44]
inc edx
mov ebp, eax
mov eax, dword [esp + 0x7c]
mov dword [esi + 0x44], edx
mov ecx, dword [eax + 0x38]
xor edi, edi
test ecx, ecx
jle 0x10d94ef9
mov ecx, dword [esp + 0x84]
inc ecx
mov dword [esp + 0x84], ecx
jmp 0x10d94ec0
mov ecx, dword [esi + 0x20]
mov eax, dword [esp + 0x7c]
mov edx, dword [esp + 0x84]
inc ecx
mov dword [esi + 0x20], ecx
mov ecx, dword [eax + 0x3c]
push 0
imul ecx, edi
push ebp
push ebx
push edx
add ecx, dword [esp + 0x90]
push ecx
push eax
mov ecx, esi
call fcn.10d94d00
mov edx, dword [esp + 0x7c]
mov eax, dword [edx + 0x38]
inc edi
cmp edi, eax
jl 0x10d94ec0
mov eax, dword [esi + 0x44]
dec eax
or edi, 0xffffffff
mov dword [esi + 0x44], eax
mov dword [esi + 0x20], 0xffffffff
xor ebx, ebx
push 2
lea ecx, [esp + 0x30]
mov byte [esp + 0x78], 5
mov dword [esp + 0x34], ebx
mov dword [esp + 0x38], ebx
call fcn.109b8e40
lea ecx, [esp + 0x2c]
mov byte [esp + 0x74], 0
call fcn.109148d0
push 2
lea ecx, [esp + 0x24]
mov dword [esp + 0x78], 6
mov dword [esp + 0x28], ebx
mov dword [esp + 0x2c], ebx
call fcn.109b8e40
mov dword [esp + 0x74], edi
jmp 0x10d95882
mov eax, dword [esp + 0x90]
cmp eax, ebx
je 0x10d94f7c
push eax
lea ecx, [esp + 0x5c]
call fcn.10902ec0
mov edi, eax
mov byte [esp + 0x74], 7
mov ebx, 4
jmp 0x10d950a9
cmp dword [esi + 0x20], ebx
mov ecx, dword [0x110a82cc]
jl 0x10d95016
cmp ecx, ebx
jne 0x10d94fac
push 0x10e47eb0
call fcn.109fad80
add esp, 4
mov dword [0x110a82cc], eax
call fcn.109f8770
mov ecx, dword [0x110a82cc]
mov eax, dword [ebp + 0x28]
cmp eax, ebx
je 0x10d94fbe
cmp eax, ecx
je 0x10d94fc9
mov eax, dword [eax + 0x2c]
cmp eax, ebx
jne 0x10d94fb3
xor eax, eax
cmp ecx, ebx
sete al
cmp eax, ebx
je 0x10d94fe3
push ebp
call fcn.1095bfd0
mov eax, dword [eax + 0x70]
mov eax, dword [eax + 0x24]
mov ecx, dword [0x110a36dc]
mov eax, dword [ecx + eax*4]
add esp, 4
jmp 0x10d94fee
mov edx, dword [ebp + 0x24]
mov eax, dword [0x110a36dc]
mov eax, dword [eax + edx*4]
mov ecx, dword [esi + 0x20]
push ecx
add eax, 0xc
push eax
lea edx, [esp + 0x4c]
push 0x10e66774
push edx
call fcn.109bc8a0
add esp, 0x10
mov ebx, 8
mov dword [esp + 0x74], ebx
jmp 0x10d950a7
cmp ecx, ebx
jne 0x10d95037
push 0x10e47eb0
call fcn.109fad80
add esp, 4
mov dword [0x110a82cc], eax
call fcn.109f8770
mov ecx, dword [0x110a82cc]
mov eax, dword [ebp + 0x28]
cmp eax, ebx
je 0x10d9504b
mov edi, edi
cmp eax, ecx
je 0x10d95056
mov eax, dword [eax + 0x2c]
cmp eax, ebx
jne 0x10d95040
xor eax, eax
cmp ecx, ebx
sete al
cmp eax, ebx
je 0x10d95070
push ebp
call fcn.1095bfd0
mov eax, dword [eax + 0x70]
mov eax, dword [eax + 0x24]
mov ecx, dword [0x110a36dc]
mov edi, dword [ecx + eax*4]
add esp, 4
jmp 0x10d9507b
mov edx, dword [ebp + 0x24]
mov eax, dword [0x110a36dc]
mov edi, dword [eax + edx*4]
push ebp
mov ecx, esi
add edi, 0xc
call fcn.10d91c60
push eax
push edi
lea ecx, [esp + 0x40]
push str._s____s__
push ecx
call fcn.109bc8a0
add esp, 0x10
mov dword [esp + 0x74], 9
mov ebx, 0x10
mov edi, eax
lea edx, [esp + 0x20]
cmp edx, edi
mov dword [esp + 0x10], ebx
je 0x10d950f2
mov eax, dword [edi + 4]
push 2
mov ecx, edx
mov dword [esp + 0x2c], eax
mov dword [esp + 0x28], eax
call fcn.109b8e40
mov eax, dword [esp + 0x24]
test eax, eax
je 0x10d950f2
mov ecx, dword [edi + 4]
test ecx, ecx
je 0x10d950dc
mov edi, dword [edi]
jmp 0x10d950e1
mov edi, 0x10e43c3c
mov ecx, dword [esp + 0x20]
add eax, eax
push eax
push edi
push ecx
call fcn.10902f60
add esp, 0xc
test bl, 0x10
mov dword [esp + 0x74], 8
je 0x10d9510f
and ebx, 0xffffffef
lea ecx, [esp + 0x38]
mov dword [esp + 0x10], ebx
call fcn.10902a90
test bl, 8
mov dword [esp + 0x74], 7
je 0x10d9512c
and ebx, 0xfffffff7
lea ecx, [esp + 0x44]
mov dword [esp + 0x10], ebx
call fcn.10902a90
test bl, 4
mov dword [esp + 0x74], 1
je 0x10d95142
lea ecx, [esp + 0x58]
call fcn.10902a90
mov ecx, dword [0x110a82f4]
test ecx, ecx
jne 0x10d95169
push 0x10e47eb0
call fcn.109fb500
add esp, 4
mov dword [0x110a82f4], eax
call fcn.109fa5f0
mov ecx, dword [0x110a82f4]
mov eax, dword [ebp + 0x28]
test eax, eax
mov edi, dword [esp + 0x80]
je 0x10d95182
cmp eax, ecx
je 0x10d9518d
mov eax, dword [eax + 0x2c]
test eax, eax
jne 0x10d95177
xor eax, eax
test ecx, ecx
sete al
test eax, eax
je 0x10d9519b
push ebp
mov ecx, esi
call fcn.10d91c60
push eax
jmp 0x10d952bb
mov ecx, dword [0x110a82ec]
test ecx, ecx
jne 0x10d951c2
push 0x10e47eb0
call fcn.109fb380
add esp, 4
mov dword [0x110a82ec], eax
call fcn.109f94a0
mov ecx, dword [0x110a82ec]
mov eax, dword [ebp + 0x28]
test eax, eax
je 0x10d951db
lea esp, [esp]
cmp eax, ecx
je 0x10d951e6
mov eax, dword [eax + 0x2c]
test eax, eax
jne 0x10d951d0
xor eax, eax
test ecx, ecx
sete al
test eax, eax
je 0x10d95243
mov edi, dword [edi + 4]
cmp edi, 1
mov eax, str.Elements
jne 0x10d951f8
mov eax, str.Element
push eax
push ebp
call fcn.1095c790
mov edx, dword [eax + 0x70]
add esp, 4
push edx
mov ecx, esi
call fcn.10d91c60
push eax
push edi
lea eax, [esp + 0x64]
push str._i__s__s
push eax
call fcn.109bc8a0
add esp, 0x14
push eax
lea ecx, [esp + 0x30]
mov byte [esp + 0x78], 0xa
call fcn.109057e0
lea ecx, [esp + 0x58]
mov byte [esp + 0x74], 1
call fcn.10902a90
jmp 0x10d952c4
mov ecx, dword [0x110a82d8]
test ecx, ecx
jne 0x10d9526a
push 0x10e47eb0
call fcn.109fafc0
add esp, 4
mov dword [0x110a82d8], eax
call fcn.109f8d40
mov ecx, dword [0x110a82d8]
mov eax, dword [ebp + 0x28]
test eax, eax
je 0x10d9527c
cmp eax, ecx
je 0x10d95287
mov eax, dword [eax + 0x2c]
test eax, eax
jne 0x10d95271
xor eax, eax
test ecx, ecx
sete al
test eax, eax
je 0x10d952a6
mov eax, dword [edi]
test eax, eax
je 0x10d9529f
mov ecx, dword [eax + 0x24]
mov edx, dword [0x110a36dc]
mov eax, dword [edx + ecx*4]
add eax, 0xc
push eax
jmp 0x10d952bb
push 0x10e4c8a8
jmp 0x10d952bb
mov edx, dword [ebp]
push 2
push edi
push edi
mov edi, dword [esp + 0x20]
push edi
mov ecx, ebp
call dword [edx + 0xa0]
push edi
lea ecx, [esp + 0x30]
call fcn.10905740
mov eax, dword [esp + 0x30]
test eax, eax
mov edx, dword [esp + 0x2c]
jne 0x10d952d5
mov edx, 0x10e43c3c
mov eax, dword [esp + 0x24]
test eax, eax
mov eax, dword [esp + 0x20]
jne 0x10d952e6
mov eax, 0x10e43c3c
mov ecx, dword [esi + 0x80]
mov edi, dword [esp + 0x88]
mov ebx, dword [ecx]
push edx
push eax
mov eax, dword [esp + 0x94]
push eax
push edi
call dword [ebx + 0x30]
mov ecx, dword [0x110a82f4]
test ecx, ecx
mov ebp, eax
mov dword [esp + 0x90], ebp
jne 0x10d95333
push 0x10e47eb0
call fcn.109fb500
add esp, 4
mov dword [0x110a82f4], eax
call fcn.109fa5f0
mov ecx, dword [0x110a82f4]
mov ebx, dword [esp + 0x7c]
mov eax, dword [ebx + 0x28]
test eax, eax
je 0x10d9534b
mov edi, edi
cmp eax, ecx
je 0x10d9535a
mov eax, dword [eax + 0x2c]
test eax, eax
jne 0x10d95340
xor eax, eax
test ecx, ecx
sete al
test eax, eax
je 0x10d95416
mov eax, dword [esi + 0x34]
mov ecx, dword [esi + 0x30]
cmp eax, ecx
jl 0x10d9536d
cmp ecx, 0xffffffff
jne 0x10d95416
mov ecx, dword [esp + 0x7c]
mov ebp, dword [esi + 0x20]
inc eax
push ecx
mov dword [esi + 0x20], 0xffffffff
mov dword [esi + 0x34], eax
call fcn.10926360
mov eax, dword [eax + 0x70]
add esp, 4
test eax, eax
mov dword [esp + 0x14], eax
je 0x10d9539c
mov edx, dword [eax + 0x40]
mov dword [esp + 0x18], edx
jmp 0x10d953a4
mov dword [esp + 0x18], 0
lea ecx, [esp + 0x14]
call fcn.10933af0
mov edi, dword [esp + 0x18]
test edi, edi
je 0x10d95407
mov ebx, dword [esp + 0x84]
lea esp, [esp]
cmp dword [esp + 0x7c], edi
je 0x10d953ef
mov eax, dword [esp + 0x90]
mov ecx, dword [esp + 0x88]
push 0
push eax
mov eax, dword [edi + 0x4c]
push ecx
lea edx, [ebx + 1]
push edx
add eax, dword [esp + 0x90]
push eax
push edi
mov ecx, esi
call fcn.10d94d00
mov ecx, dword [edi + 0x30]
mov dword [esp + 0x18], ecx
lea ecx, [esp + 0x14]
call fcn.10933af0
mov edi, dword [esp + 0x18]
test edi, edi
jne 0x10d953c0
mov eax, dword [esi + 0x34]
dec eax
mov dword [esi + 0x20], ebp
mov dword [esi + 0x34], eax
jmp 0x10d95837
mov ecx, dword [0x110a82dc]
test ecx, ecx
jne 0x10d9543d
push 0x10e47eb0
call fcn.109fb080
add esp, 4
mov dword [0x110a82dc], eax
call fcn.109fb8f0
mov ecx, dword [0x110a82dc]
mov eax, dword [ebx + 0x28]
test eax, eax
je 0x10d9544f
cmp eax, ecx
je 0x10d9545e
mov eax, dword [eax + 0x2c]
test eax, eax
jne 0x10d95444
xor eax, eax
test ecx, ecx
sete al
test eax, eax
je 0x10d95586
mov eax, dword [esi + 0x38]
cmp dword [esi + 0x3c], eax
jl 0x10d9546f
cmp eax, 0xffffffff
jne 0x10d95586
mov edx, dword [esp + 0x80]
mov ebx, dword [edx]
test ebx, ebx
je 0x10d955ec
mov eax, dword [esi + 0x20]
lea ecx, [esp + 0x58]
mov dword [esp + 0x90], eax
mov dword [esi + 0x20], 0xffffffff
call fcn.10d94ca0
push ebp
push ebx
lea ecx, [esp + 0x60]
push ecx
push edi
mov ecx, esi
mov byte [esp + 0x84], 0xb
call fcn.10d94b30
mov edx, dword [esi + 0x3c]
inc edx
push ebx
lea ecx, [esp + 0x18]
mov dword [esi + 0x3c], edx
call fcn.10934dd0
mov edi, dword [esp + 0x18]
test edi, edi
je 0x10d95562
mov edi, edi
cmp dword [esp + 0x7c], edi
je 0x10d95546
mov edx, dword [edi]
mov ecx, edi
call dword [edx + 0x7c]
mov ebp, eax
mov eax, dword [0x1107b6e4]
test eax, eax
mov dword [esp + 0x80], ebp
jne 0x10d95506
push 0x10e47eb0
call fcn.109c40f0
add esp, 4
mov dword [0x1107b6e4], eax
call fcn.109c3040
cmp ebp, dword [0x1107b6e4]
je 0x10d95546
lea eax, [esp + 0x80]
push eax
lea ecx, [esp + 0x5c]
call fcn.10d928b0
mov ecx, dword [esp + 0x88]
mov edx, dword [esp + 0x84]
push 0
dec eax
push eax
mov eax, dword [edi + 0x4c]
push ecx
inc edx
push edx
add eax, dword [ebx + 0x4ec]
push eax
push edi
mov ecx, esi
call fcn.10d94d00
mov ecx, dword [edi + 0x30]
mov dword [esp + 0x18], ecx
lea ecx, [esp + 0x14]
call fcn.10933af0
mov edi, dword [esp + 0x18]
test edi, edi
jne 0x10d954d0
mov eax, dword [esi + 0x3c]
mov edx, dword [esp + 0x90]
dec eax
lea ecx, [esp + 0x58]
mov dword [esi + 0x3c], eax
mov dword [esi + 0x20], edx
mov byte [esp + 0x74], 1
call fcn.10d94a10
jmp 0x10d95837
mov ecx, dword [0x110a82d8]
test ecx, ecx
jne 0x10d955ad
push 0x10e47eb0
call fcn.109fafc0
add esp, 4
mov dword [0x110a82d8], eax
call fcn.109f8d40
mov ecx, dword [0x110a82d8]
mov eax, dword [ebx + 0x28]
test eax, eax
je 0x10d955bf
cmp eax, ecx
je 0x10d955ce
mov eax, dword [eax + 0x2c]
test eax, eax
jne 0x10d955b4
xor eax, eax
test ecx, ecx
sete al
test eax, eax
je 0x10d95722
mov eax, dword [esi + 0x28]
cmp dword [esi + 0x2c], eax
jl 0x10d955df
cmp eax, 0xffffffff
jne 0x10d95722
mov eax, dword [esp + 0x80]
mov ebx, dword [eax]
test ebx, ebx
jne 0x10d95620
lea ecx, [esp + 0x2c]
mov byte [esp + 0x74], 0
call fcn.10902a90
lea ecx, [esp + 0x20]
mov dword [esp + 0x74], 0xffffffff
call fcn.10902a90
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x5c]
mov dword fs:[0], ecx
add esp, 0x68
ret 0x18
mov ecx, dword [esi + 0x20]
mov dword [esp + 0x90], ecx
lea ecx, [esp + 0x44]
mov dword [esi + 0x20], 0xffffffff
call fcn.10d94ca0
mov eax, dword [ebx + 0x28]
push ebp
push eax
lea edx, [esp + 0x4c]
push edx
push edi
mov ecx, esi
mov byte [esp + 0x84], 0xc
call fcn.10d94b30
inc dword [esi + 0x2c]
mov eax, dword [ebx + 0x28]
push eax
lea ecx, [esp + 0x18]
call fcn.10934dd0
mov edi, dword [esp + 0x18]
test edi, edi
je 0x10d956fe
cmp dword [esp + 0x7c], edi
je 0x10d956e2
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 0x7c]
mov ebp, eax
mov eax, dword [0x1107b6e4]
test eax, eax
mov dword [esp + 0x80], ebp
jne 0x10d956a6
push 0x10e47eb0
call fcn.109c40f0
add esp, 4
mov dword [0x1107b6e4], eax
call fcn.109c3040
cmp ebp, dword [0x1107b6e4]
je 0x10d956e2
lea ecx, [esp + 0x80]
push ecx
lea ecx, [esp + 0x48]
call fcn.10d928b0
mov edx, dword [esp + 0x88]
mov ecx, dword [edi + 0x4c]
push 0
dec eax
push eax
mov eax, dword [esp + 0x8c]
push edx
inc eax
push eax
add ecx, ebx
push ecx
push edi
mov ecx, esi
call fcn.10d94d00
mov edx, dword [edi + 0x30]
lea ecx, [esp + 0x14]
mov dword [esp + 0x18], edx
call fcn.10933af0
mov edi, dword [esp + 0x18]
test edi, edi
jne 0x10d95670
mov eax, dword [esp + 0x90]
mov dword [esi + 0x20], eax
mov eax, dword [esi + 0x2c]
dec eax
lea ecx, [esp + 0x44]
mov dword [esi + 0x2c], eax
mov byte [esp + 0x74], 1
call fcn.10d94a10
jmp 0x10d95837
mov ecx, dword [0x110a82ec]
test ecx, ecx
jne 0x10d95749
push 0x10e47eb0
call fcn.109fb380
add esp, 4
mov dword [0x110a82ec], eax
call fcn.109f94a0
mov ecx, dword [0x110a82ec]
mov eax, dword [ebx + 0x28]
test eax, eax
je 0x10d9575b
cmp eax, ecx
je 0x10d9576a
mov eax, dword [eax + 0x2c]
test eax, eax
jne 0x10d95750
xor eax, eax
test ecx, ecx
sete al
test eax, eax
je 0x10d95837
mov eax, dword [esi + 0x48]
cmp dword [esi + 0x4c], eax
jl 0x10d9577b
cmp eax, 0xffffffff
jne 0x10d95837
mov ecx, dword [esp + 0x7c]
push ecx
call fcn.1095c790
mov edx, dword [eax + 0x70]
mov ecx, dword [esi + 0x4c]
mov ebx, dword [edx + 0x3c]
mov eax, dword [esi + 0x20]
add esp, 4
inc ecx
mov dword [esi + 0x4c], ecx
mov ecx, dword [esp + 0x80]
mov dword [esp + 0x8c], eax
mov dword [esi + 0x20], 0xffffffff
mov eax, dword [ecx + 4]
xor edi, edi
test eax, eax
jle 0x10d9582a
mov edx, dword [esp + 0x84]
inc edx
mov dword [esp + 0x84], edx
xor ebp, ebp
jmp 0x10d957d0
mov edx, dword [esi + 0x20]
mov ecx, dword [esp + 0x90]
mov eax, dword [esp + 0x80]
inc edx
push 0
push ecx
mov ecx, dword [esp + 0x8c]
mov dword [esi + 0x20], edx
mov edx, dword [esp + 0x90]
mov eax, dword [eax]
push edx
push ecx
lea edx, [eax + ebp]
mov eax, dword [esp + 0x8c]
push edx
push eax
call fcn.1095c790
mov ecx, dword [eax + 0x70]
add esp, 4
push ecx
mov ecx, esi
call fcn.10d94d00
mov edx, dword [esp + 0x80]
mov eax, dword [edx + 4]
inc edi
add ebp, ebx
cmp edi, eax
jl 0x10d957d0
mov eax, dword [esp + 0x8c]
mov dword [esi + 0x20], eax
dec dword [esi + 0x4c]
xor esi, esi
push 2
lea ecx, [esp + 0x30]
mov byte [esp + 0x78], 0xd
mov dword [esp + 0x34], esi
mov dword [esp + 0x38], esi
call fcn.109b8e40
lea ecx, [esp + 0x2c]
mov byte [esp + 0x74], 0
call fcn.109148d0
push 2
lea ecx, [esp + 0x24]
mov dword [esp + 0x78], 0xe
mov dword [esp + 0x28], esi
mov dword [esp + 0x2c], esi
call fcn.109b8e40
mov dword [esp + 0x74], 0xffffffff
lea ecx, [esp + 0x20]
call fcn.109148d0
mov ecx, dword [esp + 0x6c]
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x68
ret 0x18