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

Disassembly:
sub esp, 0xfc
push ebx
push ebp
push esi
mov esi, dword [esp + 0x10c]
xor bl, bl
mov dword [esp + 0x1c], edx
xor bh, bh
xor dl, dl
mov byte [esp + 0x12], bl
xor dh, dh
mov byte [esp + 0x10], bh
mov ebp, ecx
mov byte [esp + 0x13], dl
mov byte [esp + 0x11], dh
lea eax, [esi - 1]
xor edx, edx
mov dword [esp + 0xc], ebp
xor ebx, ebx
mov dword [esp + 0x40], 0
mov dword [esp + 0x30], 0
mov dword [esp + 0x44], 0
mov dword [esp + 0x28], 0
mov dword [esp + 0x3c], edx
mov dword [esp + 0x48], ebx
mov dword [esp + 0x34], eax
push edi
mov edi, esi
test ebp, ebp
je 0x1004e629
test esi, esi
je 0x1004e629
mov ebx, dword [esp + 0x120]
test ebx, ebx
je 0x1004e629
mov edx, dword [esp + 0x114]
test edx, edx
jns 0x1004dad2
mov eax, 0xffffffe0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xfc
ret
mov ecx, dword [ebp]
cmp ecx, 0x50435245
je 0x1004dafb
cmp ecx, 0x45524350
mov eax, 0xfffffffc
mov edx, 0xffffffe3
cmove eax, edx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xfc
ret
test byte [ebp + 0xc], 1
jne 0x1004db11
mov eax, 0xffffffe4
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xfc
ret
mov ecx, dword [ebp + 8]
mov eax, 0
and ecx, 0x800
mov dword [esp + 0xd8], 0
mov dword [esp + 0x3c], ecx
setne al
mov dword [esp + 0x1c], eax
mov dword [esp + 0x9c], eax
test ecx, ecx
je 0x1004db6c
lea eax, [esp + 0x24]
mov ecx, esi
push eax
call fcn.100503d0
add esp, 4
test eax, eax
je 0x1004db6c
mov ecx, dword [esp + 0x24]
mov dword [ebx + 4], eax
mov eax, 0xfffffff6
mov dword [ebx], ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xfc
ret
movzx eax, word [ebp + 0x22]
mov edx, 0x989680
movzx ebx, word [ebp + 0x24]
add eax, ebp
mov dword [esp + 0x80], eax
mov esi, edx
movzx eax, word [ebp + 0x26]
mov ebp, dword [ebp + 0x30]
mov dword [esp + 0x70], eax
mov eax, dword [esp + 0x20]
mov dword [esp + 0x74], ebx
mov dword [esp + 0x30], 0
mov dword [esp + 0x54], edx
mov dword [esp + 0x58], esi
mov dword [esp + 0xf8], 0
test eax, eax
je 0x1004dbf9
mov ecx, dword [eax]
test cl, 1
je 0x1004dbc6
mov ecx, dword [eax + 4]
mov dword [esp + 0x30], ecx
mov ecx, dword [eax]
test cl, 2
je 0x1004dbd2
mov edx, dword [eax + 8]
mov dword [esp + 0x54], edx
test cl, 0x10
je 0x1004dbde
mov esi, dword [eax + 0x14]
mov dword [esp + 0x58], esi
test cl, 4
je 0x1004dbf1
mov eax, dword [eax + 0xc]
mov dword [esp + 0xf8], eax
mov eax, dword [esp + 0x20]
test cl, 8
je 0x1004dbf9
mov ebp, dword [eax + 0x10]
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 0xc]
mov dword [esp + 0x28], ecx
test ecx, 0x2000
je 0x1004dc18
mov eax, dword [eax + 0x10]
cmp eax, edx
cmovb edx, eax
mov dword [esp + 0x54], edx
mov edx, dword [esp + 0x10]
test ecx, 0x4000
je 0x1004dc2f
cmp dword [edx + 0x14], esi
cmovb esi, dword [edx + 0x14]
mov dword [esp + 0x58], esi
mov eax, dword [edx + 8]
test ebp, ebp
mov dword [esp + 0x18], eax
mov ecx, 0x10067a08
movzx eax, word [edx + 0x26]
cmovne ecx, ebp
imul ebx, eax
movzx eax, word [edx + 0x22]
mov dword [esp + 0xe4], 0
mov dword [esp + 0x7c], 0
mov dword [esp + 0x94], 0
add ebx, eax
mov dword [esp + 0x98], 0
mov eax, edi
mov dword [esp + 0xac], 0
mov dword [esp + 0xc4], eax
add ebx, edx
add eax, dword [esp + 0x114]
mov dword [esp + 0x24], eax
mov dword [esp + 0xc8], eax
mov dword [esp + 0xc0], ebx
mov ebx, dword [esp + 0x18]
mov eax, ebx
shr eax, 5
and eax, 1
mov dword [esp + 0xb0], 0
mov dword [esp + 0xa8], eax
mov eax, ebx
shr eax, 0x1d
and eax, 1
mov dword [esp + 0xb4], 0
mov dword [esp + 0xa4], eax
mov eax, ebx
shr eax, 0x19
and eax, 1
mov dword [esp + 0x100], 0
mov dword [esp + 0xa0], eax
mov eax, dword [esp + 0x28]
shr eax, 0xc
and eax, 1
mov dword [esp + 0xfc], 0
mov dword [esp + 0xbc], eax
lea eax, [ecx + 0x100]
mov dword [esp + 0x8c], eax
lea eax, [ecx + 0x340]
mov dword [esp + 0xf4], 0
mov dword [esp + 0x88], ecx
mov dword [esp + 0x90], eax
test ebx, 0x1800000
je 0x1004dd58
mov eax, ebx
shr eax, 0x17
and eax, 1
mov dword [esp + 0xb8], eax
jmp 0x1004dd63
mov dword [esp + 0xb8], 0
mov eax, ebx
and eax, 0x700000
cmp eax, 0x300000
ja 0x1004ddc6
je 0x1004dda9
test eax, eax
je 0x1004dd85
cmp eax, 0x100000
je 0x1004dda2
cmp eax, 0x200000
jne 0x1004ddd4
mov eax, 0xa
xor ecx, ecx
mov byte [esp + 0x84], al
mov dword [esp + 0x68], ecx
mov ecx, 1
mov dword [esp + 0x6c], ecx
jmp 0x1004ddf4
mov eax, 0xd
jmp 0x1004dd8a
mov ecx, 2
mov dword [esp + 0x68], 0
mov dword [esp + 0x6c], ecx
mov word [esp + 0x84], 0xa0d
jmp 0x1004ddf4
cmp eax, 0x400000
je 0x1004ddeb
cmp eax, 0x500000
je 0x1004dde4
mov eax, 0xffffffe9
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xfc
ret
mov ecx, 2
jmp 0x1004ddf0
mov ecx, 1
mov dword [esp + 0x68], ecx
movzx eax, word [edx + 0x20]
mov ebx, 0x3f
test ax, ax
je 0x1004de3f
cmp eax, 0x15
jb 0x1004de3f
inc eax
lea ebx, [eax + eax*2]
lea eax, [ebx*4]
push eax
call fcn.10036a50
mov esi, eax
add esp, 4
mov dword [esp + 0x5c], esi
test esi, esi
jne 0x1004de33
lea eax, [esi - 6]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xfc
ret
mov dword [esp + 0x44], 1
mov ebp, esi
jmp 0x1004de4c
mov ebp, dword [esp + 0x120]
mov esi, ebp
mov dword [esp + 0x5c], esi
lea ecx, [ebx + ebx]
mov dword [esp + 0x60], ebx
mov eax, 0x55555556
mov dword [esp + 0xe0], 0
imul ecx
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [esp + 0x64], eax
test ebp, ebp
je 0x1004dec4
lea ecx, [ebx*4]
mov ebx, dword [esp + 0x10]
add ecx, ebp
mov edx, ecx
movzx eax, word [ebx + 0x1e]
shl eax, 2
sub edx, eax
lea eax, [ebp + 8]
cmp edx, eax
cmovb edx, eax
sub ecx, 4
cmp ecx, edx
jb 0x1004deb1
nop dword [eax + eax]
mov dword [ecx], 0xffffffff
sub ecx, 4
cmp ecx, edx
jae 0x1004dea0
mov esi, dword [esp + 0x5c]
mov dword [esi], 0xffffffff
mov eax, dword [esp + 0x5c]
mov dword [eax + 4], 0xffffffff
jmp 0x1004dec8
mov ebx, dword [esp + 0x10]
mov edx, dword [esp + 0x18]
test dl, 0x10
jne 0x1004df2c
mov eax, dword [ebx + 0xc]
test al, 0x10
je 0x1004df04
mov bh, byte [ebx + 0x18]
mov ecx, dword [esp + 0x8c]
mov bl, bh
mov dword [esp + 0x34], 1
mov byte [esp + 0x14], bh
mov byte [esp + 0x16], bl
test al, 0x20
je 0x1004df33
movzx eax, bh
mov bh, byte [eax + ecx]
mov byte [esp + 0x14], bh
jmp 0x1004df33
test dword [esp + 0x28], 0x100
jne 0x1004df2c
mov eax, dword [esp + 0x30]
test eax, eax
je 0x1004df2c
test byte [eax + 4], 1
mov ecx, dword [esp + 0x8c]
je 0x1004df33
add eax, 8
mov dword [esp + 0x2c], eax
jmp 0x1004df33
mov ecx, dword [esp + 0x8c]
mov ebx, dword [esp + 0x10]
mov eax, dword [ebx + 0xc]
test al, 0x40
je 0x1004df65
mov dh, byte [ebx + 0x1a]
mov dword [esp + 0x48], 1
mov dl, dh
mov byte [esp + 0x15], dh
mov byte [esp + 0x17], dl
test al, al
jns 0x1004df61
movzx eax, dh
mov dh, byte [eax + ecx]
mov byte [esp + 0x15], dh
mov edx, dword [esp + 0x18]
mov ebp, dword [esp + 0x24]
nop dword [eax]
mov esi, ebp
test edx, 0x40000
je 0x1004e083
cmp dword [esp + 0x3c], 0
mov esi, edi
mov ecx, dword [esp + 0xc8]
je 0x1004e01b
cmp edi, ecx
jae 0x1004e083
mov ebx, dword [esp + 0x68]
nop
test ebx, ebx
je 0x1004dfd3
cmp esi, ecx
jae 0x1004e003
push dword [esp + 0x1c]
lea eax, [esp + 0x70]
mov edx, ebx
push eax
push ecx
mov ecx, esi
call fcn.10050270
add esp, 0xc
test eax, eax
jne 0x1004e07f
mov ecx, dword [esp + 0xc8]
mov ebx, dword [esp + 0x68]
jmp 0x1004e003
mov edx, dword [esp + 0x6c]
mov eax, ecx
sub eax, edx
cmp esi, eax
ja 0x1004e003
mov al, byte [esi]
cmp al, byte [esp + 0x84]
jne 0x1004e003
cmp edx, 1
je 0x1004e07f
mov al, byte [esi + 1]
cmp al, byte [esp + 0x85]
je 0x1004e07f
inc esi
cmp esi, ebp
jae 0x1004e015
mov al, byte [esi]
and al, 0xc0
cmp al, 0x80
jne 0x1004e015
inc esi
cmp esi, ebp
jb 0x1004e008
cmp esi, ecx
jb 0x1004dfa0
jmp 0x1004e07f
cmp edi, ecx
jae 0x1004e083
mov ebx, dword [esp + 0x68]
test ebx, ebx
je 0x1004e052
cmp esi, ecx
jae 0x1004e07a
push dword [esp + 0x1c]
lea eax, [esp + 0x70]
mov edx, ebx
push eax
push ecx
mov ecx, esi
call fcn.10050270
add esp, 0xc
test eax, eax
jne 0x1004e07f
mov ecx, dword [esp + 0xc8]
mov ebx, dword [esp + 0x68]
jmp 0x1004e07a
mov edx, dword [esp + 0x6c]
mov eax, ecx
sub eax, edx
cmp esi, eax
ja 0x1004e07a
mov al, byte [esi]
cmp al, byte [esp + 0x84]
jne 0x1004e07a
cmp edx, 1
je 0x1004e07f
mov al, byte [esi + 1]
cmp al, byte [esp + 0x85]
je 0x1004e07f
inc esi
cmp esi, ecx
jb 0x1004e023
mov ebx, dword [esp + 0x10]
mov ebx, dword [ebx + 8]
and ebx, 0x4000000
jne 0x1004e250
cmp dword [esp + 0x34], ebx
je 0x1004e0e2
cmp edi, esi
jae 0x1004e250
mov cl, byte [esp + 0x16]
mov dl, byte [esp + 0x14]
cmp cl, dl
je 0x1004e0d0
nop dword [eax]
mov al, byte [edi]
cmp al, cl
je 0x1004e250
cmp al, dl
je 0x1004e250
inc edi
cmp edi, esi
jb 0x1004e0b0
jmp 0x1004e250
cmp byte [edi], cl
je 0x1004e250
inc edi
cmp edi, esi
jb 0x1004e0d0
jmp 0x1004e250
test dword [esp + 0x28], 0x100
je 0x1004e21e
mov eax, dword [esp + 0xc4]
cmp edi, eax
jbe 0x1004e250
cmp edi, esi
jae 0x1004e1fe
cmp dword [esp + 0x3c], 0
mov ecx, dword [esp + 0x68]
je 0x1004e1a0
test ecx, ecx
je 0x1004e13e
cmp edi, eax
jbe 0x1004e174
push dword [esp + 0x1c]
lea edx, [esp + 0x70]
push edx
mov edx, ecx
mov ecx, edi
push eax
call fcn.100500e0
add esp, 0xc
test eax, eax
jne 0x1004e1fe
jmp 0x1004e170
mov edx, dword [esp + 0x6c]
add eax, edx
cmp edi, eax
jb 0x1004e174
mov ecx, edi
sub ecx, edx
mov al, byte [ecx]
cmp al, byte [esp + 0x84]
jne 0x1004e170
cmp edx, 1
je 0x1004e1fe
mov al, byte [ecx + 1]
cmp al, byte [esp + 0x85]
je 0x1004e1fe
mov ecx, dword [esp + 0x68]
inc edi
cmp edi, esi
jae 0x1004e1fe
nop dword [eax]
mov al, byte [edi]
and al, 0xc0
cmp al, 0x80
jne 0x1004e18f
inc edi
cmp edi, esi
jb 0x1004e180
jmp 0x1004e1fe
mov eax, dword [esp + 0xc4]
jmp 0x1004e116
test ecx, ecx
je 0x1004e1c4
cmp edi, eax
jbe 0x1004e1f9
push dword [esp + 0x1c]
lea edx, [esp + 0x70]
push edx
mov edx, ecx
mov ecx, edi
push eax
call fcn.100500e0
add esp, 0xc
test eax, eax
jne 0x1004e1fe
jmp 0x1004e1ee
mov edx, dword [esp + 0x6c]
add eax, edx
cmp edi, eax
jb 0x1004e1f2
mov ecx, edi
sub ecx, edx
mov al, byte [ecx]
cmp al, byte [esp + 0x84]
jne 0x1004e1ee
cmp edx, 1
je 0x1004e1fe
mov al, byte [ecx + 1]
cmp al, byte [esp + 0x85]
je 0x1004e1fe
mov ecx, dword [esp + 0x68]
mov eax, dword [esp + 0xc4]
inc edi
cmp edi, esi
jb 0x1004e1a0
cmp byte [edi - 1], 0xd
jne 0x1004e250
mov eax, dword [esp + 0x68]
cmp eax, 1
je 0x1004e212
cmp eax, 2
jne 0x1004e250
cmp edi, esi
jae 0x1004e250
cmp byte [edi], 0xa
jne 0x1004e250
inc edi
jmp 0x1004e250
cmp dword [esp + 0x2c], 0
je 0x1004e250
cmp edi, esi
jae 0x1004e250
mov ebp, dword [esp + 0x2c]
nop dword [eax]
movzx edx, byte [edi]
mov eax, 1
mov ecx, edx
shr edx, 3
and ecx, 7
shl eax, cl
test byte [edx + ebp], al
jne 0x1004e24c
inc edi
cmp edi, esi
jb 0x1004e230
mov ebp, dword [esp + 0x24]
test ebx, ebx
jne 0x1004e2ec
cmp dword [esp + 0xd8], ebx
jne 0x1004e2ec
mov ecx, dword [esp + 0x30]
test ecx, ecx
je 0x1004e27c
test byte [ecx + 4], 2
je 0x1004e27c
mov eax, ebp
sub eax, edi
cmp eax, dword [ecx + 0x28]
jb case.0x1004e37b.996
cmp dword [esp + 0x48], 0
je 0x1004e2ec
mov eax, ebp
sub eax, edi
cmp eax, 0x3e8
jge 0x1004e2ec
mov eax, dword [esp + 0x34]
lea ecx, [edi + eax]
cmp ecx, dword [esp + 0x38]
jbe 0x1004e2ec
cmp ecx, ebp
jae case.0x1004e37b.996
mov bl, byte [esp + 0x17]
mov ah, byte [esp + 0x15]
cmp bl, ah
je 0x1004e2d0
nop dword [eax + eax]
mov al, byte [ecx]
mov edx, ecx
inc ecx
mov dword [esp + 0x38], edx
cmp al, bl
je 0x1004e2e8
cmp al, ah
je 0x1004e2e8
cmp ecx, ebp
jb 0x1004e2b0
xor ebx, ebx
jmp 0x1004e4a4
mov al, byte [ecx]
mov edx, ecx
mov dword [esp + 0x38], ecx
inc ecx
cmp al, bl
je 0x1004e2e8
cmp ecx, ebp
jb 0x1004e2d0
xor ebx, ebx
jmp 0x1004e4a4
cmp edx, ebp
jae case.0x1004e37b.996
mov edx, dword [esp + 0xc0]
lea eax, [esp + 0x50]
push 0
push 0
push eax
push 2
push edi
mov ecx, edi
mov dword [esp + 0xe0], edi
mov dword [esp + 0xe8], edi
mov dword [esp + 0x64], 0
mov dword [esp + 0xfc], 0
mov dword [esp + 0xf0], 0
mov dword [esp + 0x8c], 0
call fcn.1003fcd0
add esp, 0x14
mov ebx, eax
cmp dword [esp + 0xb4], 0
je 0x1004e362
cmp dword [esp + 0x40], 0
jne 0x1004e362
mov eax, dword [esp + 0xd4]
mov dword [esp + 0x40], eax
mov dword [esp + 0x4c], edi
test ebx, ebx
jg case.default.0x1004e37b
je case.0x1004e37b.995
lea eax, [ebx + 0x3e4]
cmp eax, 4
ja case.default.0x1004e37b
jmp dword [eax*4 + 0x1004e63c]
mov eax, dword [esp + 0x78]
mov esi, edi
mov dword [esp + 0x7c], eax
jmp 0x1004e3bd
mov esi, dword [esp + 0xcc]
cmp esi, edi
ja 0x1004e3bd
cmp dword [esp + 0x3c], 0
lea esi, [edi + 1]
mov dword [esp + 0x7c], 0
je 0x1004e3bd
cmp esi, ebp
jae 0x1004e3bd
nop
mov al, byte [esi]
and al, 0xc0
cmp al, 0x80
jne 0x1004e3bd
inc esi
cmp esi, ebp
jb 0x1004e3b0
mov edx, dword [esp + 0x68]
xor ebx, ebx
test dword [esp + 0x18], 0x40000
je 0x1004e400
mov eax, dword [esp + 0xc8]
test edx, edx
je 0x1004e464
cmp edi, eax
jae 0x1004e400
push dword [esp + 0x1c]
lea ecx, [esp + 0x70]
push ecx
push eax
mov ecx, edi
call fcn.10050270
add esp, 0xc
test eax, eax
jne 0x1004e4a4
mov edx, dword [esp + 0x68]
mov ecx, dword [esp + 0x6c]
test byte [esp + 0x18], 0x10
mov edi, esi
jne 0x1004e4a4
cmp esi, ebp
ja 0x1004e4a4
mov ebx, dword [esp + 0x10]
cmp esi, dword [esp + 0x110]
jbe 0x1004e450
cmp byte [esi - 1], 0xd
jne 0x1004e450
cmp esi, ebp
jae 0x1004e450
cmp byte [esi], 0xa
jne 0x1004e450
test dword [ebx + 0xc], 0x800
jne 0x1004e450
cmp edx, 1
je 0x1004e44d
cmp edx, 2
je 0x1004e44d
cmp ecx, 2
jne 0x1004e450
lea edi, [esi + 1]
mov edx, dword [esp + 0x18]
mov dword [esp + 0xfc], 0
jmp 0x1004df70
mov ecx, dword [esp + 0x6c]
sub eax, ecx
cmp edi, eax
ja 0x1004e404
mov al, byte [edi]
cmp al, byte [esp + 0x84]
jne 0x1004e404
cmp ecx, 1
je 0x1004e4a4
mov al, byte [edi + 1]
cmp al, byte [esp + 0x85]
je 0x1004e4a4
jmp 0x1004e404
cmp ebx, 1
je 0x1004e533
cmp ebx, 0xfffffc19
je 0x1004e533
cmp dword [esp + 0x44], 0
je 0x1004e4b7
push dword [esp + 0x5c]
call fcn.10036a40
add esp, 4
test ebx, ebx
je 0x1004e4cd
cmp ebx, 0xfffffff4
je 0x1004e4cd
mov eax, ebx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xfc
ret
mov ebx, dword [esp + 0x4c]
test ebx, ebx
je 0x1004e504
mov eax, dword [esp + 0x120]
mov edx, dword [esp + 0x40]
sub edx, dword [esp + 0x110]
sub ebx, dword [esp + 0x110]
mov dword [eax], edx
mov edx, dword [esp + 0x114]
mov dword [eax + 4], edx
mov dword [eax + 8], ebx
mov eax, 0xfffffff4
jmp 0x1004e507
or eax, 0xffffffff
mov edx, dword [esp + 0x20]
test edx, edx
je 0x1004e62e
test byte [edx], 0x20
je 0x1004e62e
mov edx, dword [edx + 0x18]
mov ecx, dword [esp + 0x100]
mov dword [edx], ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xfc
ret
cmp dword [esp + 0x44], 0
mov ebx, dword [esp + 0x120]
je 0x1004e578
mov esi, dword [esp + 0x5c]
push 0xa0
lea eax, [esi + 8]
push eax
lea eax, [ebx + 8]
push eax
call fcn.1000f420
add esp, 0xc
cmp dword [esp + 0xdc], 0x2a
jle 0x1004e56f
or dword [esp + 0xe0], 0x10000
push esi
call fcn.10036a40
add esp, 4
test dword [esp + 0xe0], 0x10000
mov ecx, dword [esp + 0xdc]
je 0x1004e595
cmp ecx, 0x2a
jl 0x1004e595
xor esi, esi
jmp 0x1004e59e
mov eax, ecx
cdq
sub eax, edx
mov esi, eax
sar esi, 1
mov eax, dword [esp + 0x10]
movzx edi, word [eax + 0x1e]
mov eax, ecx
cdq
sub eax, edx
sar eax, 1
cmp eax, edi
jg 0x1004e5e2
lea eax, [edi*2 + 2]
mov edx, 0x40
cmp eax, edx
lea edi, [ebx + ecx*4]
cmova eax, edx
xor edx, edx
lea eax, [ebx + eax*4]
mov ecx, eax
sub ecx, edi
add ecx, 3
shr ecx, 2
cmp edi, eax
cmova ecx, edx
test ecx, ecx
je 0x1004e5e2
or eax, 0xffffffff
rep stosd dword es:[edi], eax
mov eax, dword [esp + 0xcc]
sub eax, dword [esp + 0xc4]
mov edx, dword [esp + 0x20]
mov dword [ebx], eax
mov eax, dword [esp + 0xd0]
sub eax, dword [esp + 0xc4]
mov dword [ebx + 4], eax
test edx, edx
je 0x1004e61c
test byte [edx], 0x20
je 0x1004e61c
mov edx, dword [edx + 0x18]
mov ecx, dword [esp + 0xfc]
mov dword [edx], ecx
mov eax, esi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xfc
ret
mov eax, 0xfffffffe
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xfc
ret