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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
lea eax, [esp - 0x54]
cmp eax, dword [ecx + 8]
jbe 0x4fec62
sub esp, 0xd4
mov ebx, dword [esp + 0xd8]
mov ebp, dword [ebx + 0x10]
mov esi, dword [esp + 0xdc]
sub esi, ebp
shl esi, 2
mov dword [esp + 0x3c], esi
mov edi, dword [esp + 0xe4]
sub edi, ebp
shl edi, 2
mov ebp, dword [ebx + 0x14]
mov eax, edi
mov edi, dword [esp + 0xe0]
sub edi, ebp
mov ecx, esi
mov esi, dword [esp + 0xe8]
sub esi, ebp
mov dword [esp + 0x28], esi
mov ebp, dword [esp + 0xec]
mov edx, ebp
mov ebp, dword [ebp + 0x2c]
cmp ebp, 1
jg 0x4fe6cd
test ebp, ebp
jne 0x4fe478
mov ebp, dword [esp + 0xf0]
mov dword [esp + 0xb8], eax
mov eax, dword [esp + 0xf4]
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0xb8]
jmp 0x4fe3f4
sub edi, ecx
xchg edi, ebx
neg ebx
xchg edi, ebx
sar edi, 0x1f
and edi, ecx
mov ecx, dword [esp + 0x58]
mov edx, dword [esp + 0xcc]
mov byte [edx + edi], cl
xchg esi, eax
mov byte [edx + edi + 1], al
xchg esi, eax
mov byte [edx + edi + 2], bl
mov byte [edx + edi + 3], 0xff
mov edi, dword [esp + 0x24]
lea ebx, [edi + 1]
mov edi, dword [esp + 0x80]
inc edi
mov ecx, dword [esp + 0xec]
mov edx, ecx
mov esi, dword [esp + 0x3c]
mov ecx, ebp
mov ebp, edi
cmp eax, ecx
je 0x4fe3ce
mov edi, dword [edx + 4]
mov esi, dword [edx]
cmp edi, ebx
jbe 0x4fec4f
mov dword [esp + 0x24], ebx
movzx esi, byte [esi + ebx]
mov edi, dword [edx + 0x10]
mov ebx, dword [edx + 0xc]
cmp edi, ebp
jbe 0x4fec46
movzx ebx, byte [ebx + ebp]
mov dword [esp + 0x8c], ebx
mov edi, dword [edx + 0x1c]
mov ebx, dword [edx + 0x18]
cmp edi, ebp
jbe 0x4fec3d
imul esi, esi, 0x10101
movzx ebx, byte [ebx + ebp]
imul edi, ebx, 0x166e9
lea edi, [edi + esi - 0xb37480]
test edi, 0xff000000
jne 0x4fe3c0
sar edi, 0x10
mov dword [esp + 0x14], esi
mov dword [esp + 0x58], edi
mov dword [esp + 0x80], ebp
mov ebp, dword [esp + 0x8c]
imul edi, ebp, 0x581a
add edi, 0xffd3f300
sub esi, edi
imul ebx, ebx, 0xb6d2
add ebx, 0xffa49700
sub esi, ebx
test esi, 0xff000000
jne 0x4fe3b5
sar esi, 0x10
imul ebx, ebp, 0x1c5a2
mov ebp, dword [esp + 0x14]
lea ebx, [ebx + ebp - 0xe2d100]
test ebx, 0xff000000
jne 0x4fe3ae
sar ebx, 0x10
lea ebp, [ecx + 4]
mov edi, dword [esp + 0x70]
cmp edi, ebp
jb 0x4fec34
cmp ecx, ebp
jbe 0x4fe285
jmp 0x4fec2b
sar ebx, 0x1f
not ebx
jmp 0x4fe392
sar esi, 0x1f
xchg esi, ebx
not ebx
xchg esi, ebx
jmp 0x4fe376
sar edi, 0x1f
xchg edi, ebx
not ebx
xchg edi, ebx
jmp 0x4fe339
mov ecx, dword [esp + 0x30]
lea edi, [ecx + 1]
mov ecx, dword [esp + 0x48]
inc ecx
mov ebx, dword [esp + 0xd8]
mov ebp, dword [esp + 0xf0]
mov esi, dword [esp + 0x28]
mov dword [esp + 0x48], ecx
mov ecx, dword [esp + 0x3c]
cmp esi, edi
je 0x4fe469
mov esi, dword [ebx + 4]
mov ebp, dword [ebx]
mov dword [esp + 0xd0], ebp
mov ebp, dword [ebx + 8]
mov ebx, dword [ebx + 0xc]
imul ebx, edi
cmp ebx, esi
ja 0x4fec58
mov dword [esp + 0x30], edi
sub ebp, ebx
xchg ebp, ebx
neg ebx
xchg ebp, ebx
sar ebp, 0x1f
and ebp, ebx
mov edi, dword [esp + 0xd0]
add ebp, edi
mov dword [esp + 0xcc], ebp
sub esi, ebx
mov dword [esp + 0x70], esi
mov ebx, dword [edx + 0x34]
mov edi, dword [esp + 0x48]
sub edi, ebx
mov ebx, dword [edx + 0x24]
imul ebx, edi
mov ebp, dword [edx + 0x30]
mov esi, dword [esp + 0xf0]
sub esi, ebp
add ebx, esi
mov ebp, dword [edx + 0x28]
imul edi, ebp
lea ebp, [edi + esi]
mov esi, ecx
jmp 0x4fe2cf
mov byte [esp + 0xf8], 1
add esp, 0xd4
ret
cmp ebp, 1
jne 0x4fe6be
mov ebp, dword [esp + 0xf0]
mov dword [esp + 0xb0], eax
mov eax, dword [esp + 0xf4]
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0xb0]
jmp 0x4fe632
sub edi, ecx
xchg edi, ebx
neg ebx
xchg edi, ebx
sar edi, 0x1f
and edi, ecx
mov ecx, dword [esp + 0x5c]
mov edx, dword [esp + 0xc8]
mov byte [edx + edi], cl
xchg esi, eax
mov byte [edx + edi + 1], al
xchg esi, eax
mov byte [edx + edi + 2], bl
mov byte [edx + edi + 3], 0xff
mov ecx, dword [esp + 0x54]
inc ecx
mov ebx, dword [esp + 0x20]
inc ebx
mov esi, dword [esp + 0xec]
mov edi, dword [esp + 0x78]
mov edx, esi
mov esi, dword [esp + 0x3c]
mov dword [esp + 0xa8], eax
mov eax, ecx
mov ecx, ebp
mov ebp, eax
mov eax, dword [esp + 0xa8]
cmp eax, ecx
je 0x4fe608
mov dword [esp + 0x54], ebp
shr ebp, 0x1f
mov esi, dword [esp + 0x54]
add ebp, esi
sar ebp, 1
add ebp, edi
mov edi, dword [edx + 4]
mov esi, dword [edx]
cmp edi, ebx
jbe 0x4fec19
mov dword [esp + 0x20], ebx
movzx esi, byte [esi + ebx]
mov edi, dword [edx + 0x10]
mov ebx, dword [edx + 0xc]
cmp edi, ebp
jbe 0x4fec10
movzx ebx, byte [ebx + ebp]
mov dword [esp + 0x8c], ebx
mov edi, dword [edx + 0x1c]
mov ebx, dword [edx + 0x18]
cmp edi, ebp
jbe 0x4fec07
imul esi, esi, 0x10101
movzx ebx, byte [ebx + ebp]
imul ebp, ebx, 0x166e9
lea ebp, [ebp + esi - 0xb37480]
test ebp, 0xff000000
jne 0x4fe5fa
sar ebp, 0x10
mov dword [esp + 8], esi
mov dword [esp + 0x5c], ebp
mov edi, dword [esp + 0x8c]
imul ebp, edi, 0x581a
add ebp, 0xffd3f300
sub esi, ebp
imul ebx, ebx, 0xb6d2
add ebx, 0xffa49700
sub esi, ebx
test esi, 0xff000000
jne 0x4fe5ef
sar esi, 0x10
imul ebx, edi, 0x1c5a2
mov ebp, dword [esp + 8]
lea ebx, [ebx + ebp - 0xe2d100]
test ebx, 0xff000000
jne 0x4fe5e8
sar ebx, 0x10
lea ebp, [ecx + 4]
mov edi, dword [esp + 0x74]
cmp edi, ebp
jb 0x4febfe
cmp ecx, ebp
jbe 0x4fe4a6
jmp 0x4febf5
sar ebx, 0x1f
not ebx
jmp 0x4fe5cc
sar esi, 0x1f
xchg esi, ebx
not ebx
xchg esi, ebx
jmp 0x4fe5b0
sar ebp, 0x1f
xchg ebp, ebx
not ebx
xchg ebp, ebx
jmp 0x4fe57a
mov ecx, dword [esp + 0x38]
lea edi, [ecx + 1]
mov ecx, dword [esp + 0x40]
inc ecx
mov ebx, dword [esp + 0xd8]
mov ebp, dword [esp + 0x28]
mov ebp, dword [esp + 0xf0]
mov esi, dword [esp + 0x28]
mov dword [esp + 0x40], ecx
mov ecx, dword [esp + 0x3c]
cmp esi, edi
je 0x4fe469
mov esi, dword [ebx + 4]
mov ebp, dword [ebx]
mov dword [esp + 0xd0], ebp
mov ebp, dword [ebx + 8]
mov ebx, dword [ebx + 0xc]
imul ebx, edi
cmp esi, ebx
jb 0x4fec22
mov dword [esp + 0x38], edi
sub ebp, ebx
xchg ebp, ebx
neg ebx
xchg ebp, ebx
sar ebp, 0x1f
and ebp, ebx
mov edi, dword [esp + 0xd0]
add ebp, edi
mov dword [esp + 0xc8], ebp
sub esi, ebx
mov dword [esp + 0x74], esi
mov ebx, dword [edx + 0x34]
mov edi, dword [esp + 0x40]
sub edi, ebx
mov ebx, dword [edx + 0x24]
imul ebx, edi
mov ebp, dword [edx + 0x30]
mov esi, dword [esp + 0xf0]
sub esi, ebp
add ebx, esi
mov esi, dword [edx + 0x28]
imul edi, esi
mov esi, ebp
shr ebp, 0x1f
add ebp, esi
sar ebp, 1
sub edi, ebp
mov dword [esp + 0x78], edi
mov ebp, dword [esp + 0xf0]
mov esi, ecx
jmp 0x4fe4ff
mov byte [esp + 0xf8], 0
add esp, 0xd4
ret
cmp ebp, 2
jne 0x4fe93d
mov ebp, dword [esp + 0xf0]
mov dword [esp + 0xa0], eax
mov eax, dword [esp + 0xf4]
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0xa0]
jmp 0x4fe887
sub edi, ecx
xchg edi, ebx
neg ebx
xchg edi, ebx
sar edi, 0x1f
and edi, ecx
mov ecx, dword [esp + 0x60]
mov edx, dword [esp + 0xc0]
mov byte [edx + edi], cl
xchg esi, eax
mov byte [edx + edi + 1], al
xchg esi, eax
mov byte [edx + edi + 2], bl
mov byte [edx + edi + 3], 0xff
mov ecx, dword [esp + 0x50]
inc ecx
mov ebx, dword [esp + 0x1c]
inc ebx
mov esi, dword [esp + 0xec]
mov edi, dword [esp + 0x7c]
mov edx, esi
mov esi, dword [esp + 0x3c]
mov dword [esp + 0x98], eax
mov eax, ecx
mov ecx, ebp
mov ebp, eax
mov eax, dword [esp + 0x98]
cmp eax, ecx
je 0x4fe85d
mov dword [esp + 0x50], ebp
shr ebp, 0x1f
mov esi, dword [esp + 0x50]
add ebp, esi
sar ebp, 1
add ebp, edi
mov edi, dword [edx + 4]
mov esi, dword [edx]
cmp edi, ebx
jbe 0x4febe3
mov dword [esp + 0x1c], ebx
movzx esi, byte [esi + ebx]
mov edi, dword [edx + 0x10]
mov ebx, dword [edx + 0xc]
cmp edi, ebp
jbe 0x4febda
movzx ebx, byte [ebx + ebp]
mov dword [esp + 0x8c], ebx
mov edi, dword [edx + 0x1c]
mov ebx, dword [edx + 0x18]
cmp edi, ebp
jbe 0x4febd1
imul esi, esi, 0x10101
movzx ebx, byte [ebx + ebp]
imul ebp, ebx, 0x166e9
lea ebp, [ebp + esi - 0xb37480]
test ebp, 0xff000000
jne 0x4fe84f
sar ebp, 0x10
mov dword [esp + 0xc], esi
mov dword [esp + 0x60], ebp
mov edi, dword [esp + 0x8c]
imul ebp, edi, 0x581a
add ebp, 0xffd3f300
sub esi, ebp
imul ebx, ebx, 0xb6d2
add ebx, 0xffa49700
sub esi, ebx
test esi, 0xff000000
jne 0x4fe844
sar esi, 0x10
imul ebx, edi, 0x1c5a2
mov ebp, dword [esp + 0xc]
lea ebx, [ebx + ebp - 0xe2d100]
test ebx, 0xff000000
jne 0x4fe83d
sar ebx, 0x10
lea ebp, [ecx + 4]
mov edi, dword [esp + 0x6c]
cmp edi, ebp
jb 0x4febc8
cmp ecx, ebp
jbe 0x4fe6fb
jmp 0x4febbf
sar ebx, 0x1f
not ebx
jmp 0x4fe821
sar esi, 0x1f
xchg esi, ebx
not ebx
xchg esi, ebx
jmp 0x4fe805
sar ebp, 0x1f
xchg ebp, ebx
not ebx
xchg ebp, ebx
jmp 0x4fe7cf
mov ecx, dword [esp + 0x34]
lea edi, [ecx + 1]
mov ecx, dword [esp + 0x4c]
inc ecx
mov ebx, dword [esp + 0xd8]
mov ebp, dword [esp + 0x28]
mov ebp, dword [esp + 0xf0]
mov esi, dword [esp + 0x28]
mov dword [esp + 0x4c], ecx
mov ecx, dword [esp + 0x3c]
cmp esi, edi
je 0x4fe469
mov esi, dword [ebx + 4]
mov ebp, dword [ebx]
mov dword [esp + 0xd0], ebp
mov ebp, dword [ebx + 8]
mov ebx, dword [ebx + 0xc]
imul ebx, edi
cmp ebx, esi
ja 0x4febec
mov dword [esp + 0x34], edi
sub ebp, ebx
xchg ebp, ebx
neg ebx
xchg ebp, ebx
sar ebp, 0x1f
and ebp, ebx
mov edi, dword [esp + 0xd0]
add ebp, edi
mov dword [esp + 0xc0], ebp
sub esi, ebx
mov dword [esp + 0x6c], esi
mov ebx, dword [edx + 0x34]
mov dword [esp + 0x88], ebx
mov edi, dword [esp + 0x4c]
sub edi, ebx
imul edi, dword [edx + 0x24]
mov ebp, dword [edx + 0x30]
mov esi, dword [esp + 0xf0]
sub esi, ebp
add esi, edi
mov dword [esp + 0x1c], esi
mov edi, dword [esp + 0x4c]
shr edi, 0x1f
mov esi, dword [esp + 0x4c]
add edi, esi
sar edi, 1
shr ebx, 0x1f
mov esi, dword [esp + 0x88]
add ebx, esi
sar ebx, 1
sub edi, ebx
imul edi, dword [edx + 0x28]
mov ebx, ebp
shr ebp, 0x1f
add ebx, ebp
sar ebx, 1
sub edi, ebx
mov dword [esp + 0x7c], edi
mov ebx, dword [esp + 0x1c]
mov ebp, dword [esp + 0xf0]
mov esi, ecx
jmp 0x4fe754
cmp ebp, 3
jne 0x4fe6be
mov ebp, dword [esp + 0xf0]
mov dword [esp + 0x90], eax
mov eax, dword [esp + 0xf4]
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x90]
jmp 0x4feae5
sub edi, ecx
xchg edi, ebx
neg ebx
xchg edi, ebx
sar edi, 0x1f
and ecx, edi
mov edi, dword [esp + 0x64]
mov edx, dword [esp + 0xc4]
xchg edi, eax
mov byte [edx + ecx], al
xchg edi, eax
xchg esi, eax
mov byte [edx + ecx + 1], al
xchg esi, eax
mov byte [edx + ecx + 2], bl
mov byte [edx + ecx + 3], 0xff
mov edi, dword [esp + 0x18]
inc edi
mov ecx, edi
mov edi, dword [esp + 0x84]
lea ebx, [edi + 1]
mov edi, dword [esp + 0xec]
mov edx, edi
mov esi, dword [esp + 0x3c]
mov esi, ecx
mov ecx, ebp
mov ebp, esi
mov esi, dword [esp + 0x3c]
cmp eax, ecx
je 0x4feabf
mov edi, dword [edx + 4]
mov esi, dword [edx]
cmp edi, ebp
jbe 0x4febad
mov dword [esp + 0x18], ebp
movzx esi, byte [ebp + esi]
mov edi, dword [edx + 0x10]
mov ebp, dword [edx + 0xc]
cmp edi, ebx
jbe 0x4feba4
movzx ebp, byte [ebx + ebp]
mov dword [esp + 0x8c], ebp
mov edi, dword [edx + 0x1c]
mov ebp, dword [edx + 0x18]
cmp edi, ebx
jbe 0x4feb9b
imul esi, esi, 0x10101
movzx ebp, byte [ebx + ebp]
imul edi, ebp, 0x166e9
lea edi, [edi + esi - 0xb37480]
test edi, 0xff000000
jne 0x4feab1
sar edi, 0x10
mov dword [esp + 0x10], esi
mov dword [esp + 0x64], edi
mov dword [esp + 0x84], ebx
mov ebx, dword [esp + 0x8c]
imul edi, ebx, 0x581a
add edi, 0xffd3f300
sub esi, edi
imul ebp, ebp, 0xb6d2
add ebp, 0xffa49700
sub esi, ebp
test esi, 0xff000000
jne 0x4feaa6
sar esi, 0x10
imul ebx, ebx, 0x1c5a2
mov ebp, dword [esp + 0x10]
lea ebx, [ebx + ebp - 0xe2d100]
test ebx, 0xff000000
jne 0x4fea9f
sar ebx, 0x10
lea ebp, [ecx + 4]
mov edi, dword [esp + 0x68]
cmp edi, ebp
jb 0x4feb92
cmp ecx, ebp
jbe 0x4fe96b
jmp 0x4feb89
sar ebx, 0x1f
not ebx
jmp 0x4fea83
sar esi, 0x1f
xchg esi, ebx
not ebx
xchg esi, ebx
jmp 0x4fea67
sar edi, 0x1f
xchg edi, ebx
not ebx
xchg edi, ebx
jmp 0x4fea2a
mov ecx, dword [esp + 0x2c]
lea edi, [ecx + 1]
mov ecx, dword [esp + 0x44]
inc ecx
mov ebx, dword [esp + 0xd8]
mov ebp, dword [esp + 0xf0]
mov esi, dword [esp + 0x28]
mov dword [esp + 0x44], ecx
mov ecx, dword [esp + 0x3c]
cmp esi, edi
je 0x4fe469
mov esi, dword [ebx + 4]
mov ebp, dword [ebx]
mov dword [esp + 0xd0], ebp
mov ebp, dword [ebx + 8]
mov ebx, dword [ebx + 0xc]
imul ebx, edi
cmp esi, ebx
jb 0x4febb6
mov dword [esp + 0x2c], edi
sub ebp, ebx
xchg ebp, ebx
neg ebx
xchg ebp, ebx
sar ebp, 0x1f
and ebp, ebx
mov edi, dword [esp + 0xd0]
add ebp, edi
mov dword [esp + 0xc4], ebp
sub esi, ebx
mov dword [esp + 0x68], esi
mov ebx, dword [edx + 0x34]
mov dword [esp + 0x88], ebx
mov edi, dword [esp + 0x44]
sub edi, ebx
imul edi, dword [edx + 0x24]
mov ebp, dword [edx + 0x30]
mov esi, dword [esp + 0xf0]
sub esi, ebp
lea ebp, [edi + esi]
mov dword [esp + 0x18], ebp
mov edi, dword [esp + 0x44]
shr edi, 0x1f
mov ebp, dword [esp + 0x44]
add edi, ebp
sar edi, 1
shr ebx, 0x1f
mov ebp, dword [esp + 0x88]
add ebx, ebp
sar ebx, 1
sub edi, ebx
imul edi, dword [edx + 0x28]
lea ebx, [esi + edi]
mov ebp, dword [esp + 0x18]
mov esi, ecx
jmp 0x4fe9bf
mov eax, ecx
mov ecx, ebp
call fcn.0045ae20
mov ecx, ebp
mov edx, edi
call fcn.0045ae10
mov eax, ebx
mov ecx, edi
call fcn.0045ad60
mov eax, ebx
mov ecx, edi
call fcn.0045ad60
mov eax, ebp
mov ecx, edi
call fcn.0045ad60
mov eax, ebx
mov ecx, esi
call fcn.0045adc0
mov eax, ecx
mov ecx, ebp
call fcn.0045ae20
mov ecx, ebp
mov edx, edi
call fcn.0045ae10
mov eax, ebp
mov ecx, edi
call fcn.0045ad60
mov eax, ebp
mov ecx, edi
call fcn.0045ad60
mov eax, ebx
mov ecx, edi
call fcn.0045ad60
mov eax, ebx
mov ecx, esi
call fcn.0045adc0
mov eax, ecx
mov ecx, ebp
call fcn.0045ae20
mov ecx, ebp
mov edx, edi
call fcn.0045ae10
mov eax, ebp
mov ecx, edi
call fcn.0045ad60
mov eax, ebp
mov ecx, edi
call fcn.0045ad60
mov eax, ebx
mov ecx, edi
call fcn.0045ad60
mov eax, ebx
mov ecx, esi
call fcn.0045adc0
mov eax, ecx
mov ecx, ebp
call fcn.0045ae20
mov ecx, ebp
mov edx, edi
call fcn.0045ae10
mov eax, ebp
mov ecx, edi
call fcn.0045ad60
mov eax, ebp
mov ecx, edi
call fcn.0045ad60
mov eax, ebx
mov ecx, edi
call fcn.0045ad60
mov eax, ebx
mov ecx, esi
call fcn.0045adc0
nop
call fcn.00459790
jmp fcn.004fe1e0