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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
cmp esp, dword [ecx + 8]
jbe 0x45999a
sub esp, 0x7c
mov edx, dword [esp + 0x98]
test edx, edx
sete bl
mov ebp, dword [esp + 0x94]
test ebp, ebp
xchg esi, ebx
sete bl
xchg esi, ebx
and ebx, esi
test bl, bl
je 0x45910f
xor eax, eax
jmp 0x459116
mov eax, dword [esp + 0x9c]
mov ebx, dword [esp + 0xa0]
mov ebx, dword [ebx]
lea ecx, [ebx - 0x3c]
neg ecx
cmp ecx, 0x20
sbb ebx, ebx
lea esi, [ecx - 0x20]
mov dword [esp + 0x60], esi
cmp esi, 0x20
sbb edi, edi
xchg esi, ebx
neg ebx
xchg esi, ebx
mov dword [esp + 0x5c], esi
cmp esi, 0x20
sbb esi, esi
shl edx, cl
shl ebp, cl
and ebp, ebx
mov dword [esp + 0x58], ebp
mov ecx, dword [esp + 0x60]
mov ebp, dword [esp + 0x94]
shl ebp, cl
and ebp, edi
mov ecx, dword [esp + 0x5c]
mov edi, dword [esp + 0x94]
shr edi, cl
and edi, esi
and edx, ebx
or edx, edi
or edx, ebp
mov ebx, dword [esp + 0x58]
jmp 0x459186
shl edx, 1
mov ebp, ebx
shr ebx, 0x1f
or edx, ebx
shl ebp, 1
dec eax
mov ebx, ebp
test edx, edx
xchg ebp, ebx
setne bl
xchg ebp, ebx
test ebx, ebx
xchg esi, ebx
setne bl
xchg esi, ebx
or ebp, esi
xchg ebp, eax
test al, al
xchg ebp, eax
je 0x4591b6
test edx, 0x10000000
xchg ebp, ebx
sete bl
xchg ebp, ebx
and ebp, 1
xchg ebp, eax
test al, al
xchg ebp, eax
jne 0x459178
mov ebp, dword [esp + 0x8c]
cmp ebp, 0xf
jae 0x45933f
mov dword [esp + 0x54], edx
mov dword [esp + 0x50], ebx
shl ebp, 2
mov dword [esp + 0x4c], ebp
cmp ebp, 0x20
sbb edi, edi
mov dword [esp + 0x60], edi
lea ecx, [ebp - 0x20]
mov dword [esp + 0x5c], ecx
neg ecx
mov dword [esp + 0x58], ecx
cmp ecx, 0x20
sbb esi, esi
mov edi, dword [esp + 0x5c]
cmp edi, 0x20
sbb edx, edx
mov dword [esp + 0x5c], edx
lea edx, [ebp - 0x3c]
neg edx
mov dword [esp + 0x48], edx
cmp edx, 0x20
sbb ebp, ebp
mov dword [esp + 0x44], ebp
lea ebp, [edx - 0x20]
mov dword [esp + 0x40], ebp
xchg ebp, ebx
neg ebx
xchg ebp, ebx
mov dword [esp + 0x3c], ebp
cmp ebp, 0x20
sbb edx, edx
mov dword [esp + 0x38], edx
mov edx, dword [esp + 0x40]
cmp edx, 0x20
sbb edx, edx
mov dword [esp + 0x34], edx
mov ecx, edi
mov edi, ebx
shl ebx, cl
mov ecx, dword [esp + 0x58]
shr edi, cl
and edi, esi
mov ecx, dword [esp + 0x4c]
mov esi, dword [esp + 0x54]
shl esi, cl
mov edx, dword [esp + 0x60]
and esi, edx
mov ebp, dword [esp + 0x5c]
and ebp, ebx
or esi, edi
or esi, ebp
and esi, 0xfffffff
cmp esi, 0x8000000
seta bl
mov byte [esp + 0x27], bl
xchg ebp, ebx
sete bl
xchg ebp, ebx
xchg ebp, eax
mov byte [esp + 0x26], al
xchg ebp, eax
mov esi, dword [esp + 0x50]
mov edi, esi
shl esi, cl
and esi, edx
mov ecx, dword [esp + 0x3c]
mov edx, dword [esp + 0x54]
shl edx, cl
mov ebx, dword [esp + 0x38]
and edx, ebx
mov ecx, dword [esp + 0x40]
mov ebx, dword [esp + 0x54]
shr ebx, cl
mov ebp, dword [esp + 0x34]
and ebx, ebp
mov ecx, dword [esp + 0x48]
shr edi, cl
mov ebp, dword [esp + 0x44]
and edi, ebp
or edx, edi
or edx, ebx
mov ebx, edx
and edx, 1
or edx, esi
test edx, edx
seta dl
mov esi, dword [esp + 0x54]
shr esi, cl
and esi, ebp
movzx edi, byte [esp + 0x26]
and edi, edx
movzx edx, byte [esp + 0x27]
or edi, edx
xchg edi, eax
test al, al
xchg edi, eax
je 0x4592e6
add ebx, 1
adc esi, 0
mov edx, ecx
mov ecx, dword [esp + 0x3c]
mov edi, ebx
shr ebx, cl
mov ecx, edi
mov edi, dword [esp + 0x38]
and ebx, edi
mov edi, ecx
mov ecx, edx
shl esi, cl
and esi, ebp
or ebx, esi
mov ecx, dword [esp + 0x40]
mov esi, edi
shl edi, cl
mov ecx, ebp
mov ebp, dword [esp + 0x34]
and edi, ebp
or edi, ebx
mov ebx, ecx
mov ecx, edx
shl esi, cl
and esi, ebx
test edi, 0x20000000
je 0x459332
shr esi, 1
mov ecx, edi
shl edi, 0x1f
or esi, edi
shr ecx, 1
inc eax
jmp 0x459334
mov ecx, edi
mov ebp, dword [esp + 0x8c]
mov edx, ecx
mov ebx, esi
movzx ecx, byte [esp + 0x90]
cmp cl, 0x58
jne 0x459354
lea esi, [0x4a73f5]
jmp 0x45935a
lea esi, [0x4a7405]
mov dword [esp + 0x74], esi
mov dword [esp + 0x4c], eax
mov dword [esp + 0x60], edx
mov dword [esp + 0x5c], ebx
movzx edi, byte [esp + 0x91]
xchg edi, eax
test al, al
xchg edi, eax
je 0x459405
mov edi, dword [esp + 0x84]
inc edi
mov esi, dword [esp + 0x88]
cmp esi, edi
jb 0x4593a4
mov dword [esp + 0x6c], eax
mov eax, dword [esp + 0x80]
mov dword [esp + 0x78], eax
mov eax, dword [esp + 0x6c]
jmp 0x4593fa
mov eax, dword [esp + 0x80]
mov dword [esp], eax
mov dword [esp + 4], edi
mov dword [esp + 8], esi
mov dword [esp + 0xc], 1
lea eax, [0x4990c0]
mov dword [esp + 0x10], eax
call fcn.0043e8b0
mov eax, dword [esp + 0x14]
mov edi, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x60]
mov ebx, dword [esp + 0x5c]
mov ebp, dword [esp + 0x8c]
mov dword [esp + 0x78], eax
mov esi, ecx
mov eax, dword [esp + 0x4c]
movzx ecx, byte [esp + 0x90]
mov ebp, dword [esp + 0x78]
mov byte [edi + ebp - 1], 0x2d
jmp 0x45941a
mov esi, dword [esp + 0x88]
mov ebp, dword [esp + 0x80]
mov edi, dword [esp + 0x84]
add edi, 3
cmp esi, edi
jae 0x459463
mov dword [esp], ebp
mov dword [esp + 4], edi
mov dword [esp + 8], esi
mov dword [esp + 0xc], 3
lea eax, [0x4990c0]
mov dword [esp + 0x10], eax
call fcn.0043e8b0
mov ebp, dword [esp + 0x14]
mov edi, dword [esp + 0x18]
mov esi, dword [esp + 0x1c]
mov eax, dword [esp + 0x4c]
movzx ecx, byte [esp + 0x90]
mov edx, dword [esp + 0x60]
mov ebx, dword [esp + 0x5c]
mov byte [edi + ebp - 3], 0x30
mov byte [edi + ebp - 2], cl
shr edx, 0x1c
and edx, 1
add edx, 0x30
mov byte [edi + ebp - 1], dl
mov edx, dword [esp + 0x60]
shl edx, 4
shr ebx, 0x1c
or ebx, edx
mov dword [esp + 0x60], ebx
mov edx, dword [esp + 0x5c]
shl edx, 4
mov dword [esp + 0x5c], edx
mov ecx, dword [esp + 0x8c]
test ecx, ecx
jge 0x459508
test ebx, ebx
setne bl
test edx, edx
setne dl
or edx, ebx
test dl, dl
je 0x4594fe
lea ecx, [edi + 1]
cmp esi, ecx
jae 0x4594e8
mov dword [esp], ebp
mov dword [esp + 4], ecx
mov dword [esp + 8], esi
mov dword [esp + 0xc], 1
lea eax, [0x4990c0]
mov dword [esp + 0x10], eax
call fcn.0043e8b0
mov ebp, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov esi, dword [esp + 0x1c]
mov eax, dword [esp + 0x4c]
mov byte [ecx + ebp - 1], 0x2e
mov edi, dword [esp + 0x74]
mov edx, dword [esp + 0x5c]
mov ebx, dword [esp + 0x60]
jmp 0x45990a
test ecx, ecx
mov edx, dword [esp + 0x5c]
mov ebx, dword [esp + 0x60]
jle 0x459568
inc edi
cmp esi, edi
jae 0x459550
mov dword [esp], ebp
mov dword [esp + 4], edi
mov dword [esp + 8], esi
mov dword [esp + 0xc], 1
lea eax, [0x4990c0]
mov dword [esp + 0x10], eax
call fcn.0043e8b0
mov ebp, dword [esp + 0x14]
mov edi, dword [esp + 0x18]
mov esi, dword [esp + 0x1c]
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0x8c]
mov edx, dword [esp + 0x5c]
mov ebx, dword [esp + 0x60]
mov byte [edi + ebp - 1], 0x2e
mov dword [esp + 0x64], eax
xor eax, eax
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x64]
jmp 0x459884
nop
movzx ecx, byte [esp + 0x90]
mov edx, ecx
or ecx, 0x20
cmp dl, cl
jne 0x459581
mov ecx, 0x70
jmp 0x459586
mov ecx, 0x50
lea edx, [edi + 1]
cmp esi, edx
jae 0x4595c8
mov byte [esp + 0x23], cl
mov dword [esp], ebp
mov dword [esp + 4], edx
mov dword [esp + 8], esi
mov dword [esp + 0xc], 1
lea eax, [0x4990c0]
mov dword [esp + 0x10], eax
call fcn.0043e8b0
mov ebp, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov esi, dword [esp + 0x1c]
mov eax, dword [esp + 0x4c]
movzx ecx, byte [esp + 0x23]
mov byte [edx + ebp - 1], cl
test eax, eax
jge 0x4595d9
neg eax
mov ecx, 0x2d
jmp 0x4595de
mov ecx, 0x2b
mov dword [esp + 0x4c], eax
inc edx
cmp esi, edx
jae 0x459622
mov byte [esp + 0x23], cl
mov dword [esp], ebp
mov dword [esp + 4], edx
mov dword [esp + 8], esi
mov dword [esp + 0xc], 1
lea eax, [0x4990c0]
mov dword [esp + 0x10], eax
call fcn.0043e8b0
mov ebp, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov esi, dword [esp + 0x1c]
mov eax, dword [esp + 0x4c]
movzx ecx, byte [esp + 0x23]
mov byte [edx + ebp - 1], cl
cmp eax, 0x64
jge 0x4596a1
lea ecx, [edx + 2]
mov edx, eax
mov eax, 0xcccccccd
mov ebx, edx
imul edx
add edx, ebx
sar edx, 3
mov edi, ebx
sar ebx, 0x1f
sub edx, ebx
lea ebx, [edx + edx*4]
shl ebx, 1
sub edi, ebx
cmp esi, ecx
jae 0x45968e
mov dword [esp + 0x4c], edx
mov dword [esp + 0x30], edi
mov dword [esp], ebp
mov dword [esp + 4], ecx
mov dword [esp + 8], esi
mov dword [esp + 0xc], 2
lea eax, [0x4990c0]
mov dword [esp + 0x10], eax
call fcn.0043e8b0
mov ebp, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov esi, dword [esp + 0x1c]
mov edx, dword [esp + 0x4c]
mov edi, dword [esp + 0x30]
lea eax, [edx + 0x30]
mov byte [ecx + ebp - 2], al
lea eax, [edi + 0x30]
mov byte [ecx + ebp - 1], al
jmp 0x45983e
cmp eax, 0x3e8
jge 0x459766
lea ecx, [edx + 3]
mov edx, eax
mov eax, 0xcccccccd
mov ebx, edx
imul edx
add edx, ebx
mov edi, edx
sar edx, 3
mov dword [esp + 0x30], edx
mov eax, 0xcccccccd
imul edx
mov eax, ebp
mov ebp, dword [esp + 0x30]
add edx, ebp
sar edx, 3
sar edi, 0x1f
sub edx, edi
lea edx, [edx + edx*4]
shl edx, 1
mov edi, ebp
sub ebp, edx
lea edx, [edi + edi*4]
shl edx, 1
mov edi, ebx
sub ebx, edx
mov dword [esp + 0x30], ebx
cmp esi, ecx
jae 0x459736
mov dword [esp + 0x2c], ebp
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], esi
mov dword [esp + 0xc], 3
lea eax, [0x4990c0]
mov dword [esp + 0x10], eax
call fcn.0043e8b0
mov ebp, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov esi, dword [esp + 0x1c]
mov ebx, dword [esp + 0x30]
mov edi, dword [esp + 0x4c]
mov eax, ebp
mov ebp, dword [esp + 0x2c]
mov edx, eax
mov eax, edi
mov ebx, 0x51eb851f
mov edi, edx
imul ebx
sar edx, 5
add edx, 0x30
mov byte [ecx + edi - 3], dl
lea edx, [ebp + 0x30]
mov byte [ecx + edi - 2], dl
mov edx, dword [esp + 0x30]
add edx, 0x30
mov byte [ecx + edi - 1], dl
mov ebp, edi
jmp 0x45983e
mov ecx, eax
mov eax, 0xcccccccd
mov ebx, edx
imul ecx
add edx, ecx
mov edi, edx
sar edx, 3
mov dword [esp + 0x30], edx
mov eax, ebp
lea ebp, [edx + edx*4]
shl ebp, 1
sub ecx, ebp
mov dword [esp + 0x2c], ecx
add ebx, 4
mov ebp, eax
mov eax, dword [esp + 0x4c]
mov ecx, 0x51eb851f
imul ecx
sar edx, 5
movzx ecx, dl
imul ecx, ecx, 0x19a
shr ecx, 0xc
lea ecx, [ecx + ecx*4]
shl ecx, 1
sub edx, ecx
mov byte [esp + 0x25], dl
mov eax, 0xcccccccd
mov ecx, dword [esp + 0x30]
imul ecx
add edx, ecx
sar edx, 3
sar edi, 0x1f
sub edx, edi
lea edx, [edx + edx*4]
shl edx, 1
sub ecx, edx
cmp esi, ebx
jae 0x459809
mov dword [esp + 0x30], ecx
mov dword [esp], ebp
mov dword [esp + 4], ebx
mov dword [esp + 8], esi
mov dword [esp + 0xc], 4
lea eax, [0x4990c0]
mov dword [esp + 0x10], eax
call fcn.0043e8b0
mov ebp, dword [esp + 0x14]
mov ebx, dword [esp + 0x18]
mov esi, dword [esp + 0x1c]
mov ecx, dword [esp + 0x30]
mov eax, 0x4189374c
mov edx, dword [esp + 0x4c]
imul edx
sar edx, 8
add edx, 0x30
mov byte [ebx + ebp - 4], dl
movzx edx, byte [esp + 0x25]
add edx, 0x30
mov byte [ebx + ebp - 3], dl
lea edx, [ecx + 0x30]
mov byte [ebx + ebp - 2], dl
mov edx, dword [esp + 0x2c]
add edx, 0x30
mov byte [ebx + ebp - 1], dl
mov ecx, ebx
mov dword [esp + 0xa4], ebp
mov dword [esp + 0xa8], ecx
mov dword [esp + 0xac], esi
add esp, 0x7c
ret
mov byte [edi + ebp - 1], bl
inc edx
mov ebx, dword [esp + 0x5c]
shl ebx, 4
mov eax, dword [esp + 0x60]
shr eax, 0x1c
or ebx, eax
mov eax, dword [esp + 0x60]
shl eax, 4
mov ecx, dword [esp + 0x8c]
mov dword [esp + 0x28], edx
mov edx, eax
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x60], edx
mov edx, dword [esp + 0x28]
cmp ecx, edx
jle 0x459568
mov dword [esp + 0x5c], ebx
inc edi
shr ebx, 0x1c
and ebx, 0xf
mov ecx, dword [esp + 0x74]
movzx ebx, byte [ecx + ebx]
cmp esi, edi
jae 0x459857
mov byte [esp + 0x24], bl
mov dword [esp], ebp
mov dword [esp + 4], edi
mov dword [esp + 8], esi
mov dword [esp + 0xc], 1
lea eax, [0x4990c0]
mov dword [esp + 0x10], eax
call fcn.0043e8b0
mov ebp, dword [esp + 0x14]
mov edi, dword [esp + 0x18]
mov esi, dword [esp + 0x1c]
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0x74]
mov edx, dword [esp + 0x28]
movzx ebx, byte [esp + 0x24]
jmp 0x459857
mov byte [ecx + ebp - 1], bl
shl edx, 4
mov ebx, dword [esp + 0x60]
shr ebx, 0x1c
or ebx, edx
mov edx, dword [esp + 0x60]
shl edx, 4
mov dword [esp + 0x60], edx
mov dword [esp + 0x78], ebp
test ebx, ebx
xchg ebp, ebx
setne bl
xchg ebp, ebx
test edx, edx
setne dl
or ebp, edx
xchg ebp, eax
test al, al
xchg ebp, eax
je 0x45998f
inc ecx
mov edx, ebx
shr ebx, 0x1c
and ebx, 0xf
movzx ebx, byte [edi + ebx]
cmp esi, ecx
jb 0x45993f
mov ebp, dword [esp + 0x78]
jmp 0x4598f3
mov dword [esp + 0x5c], edx
mov byte [esp + 0x24], bl
mov eax, dword [esp + 0x78]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], esi
mov dword [esp + 0xc], 1
lea eax, [0x4990c0]
mov dword [esp + 0x10], eax
call fcn.0043e8b0
mov ebp, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov esi, dword [esp + 0x1c]
mov eax, dword [esp + 0x4c]
mov edx, dword [esp + 0x5c]
movzx ebx, byte [esp + 0x24]
mov edi, dword [esp + 0x74]
jmp 0x4598f3
mov ebp, dword [esp + 0x78]
mov edi, ecx
jmp 0x459568
call fcn.0044ffd0
jmp fcn.004590d0