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

Disassembly:
mov ecx, dword [0xe11d80]
mov ecx, dword fs:[ecx]
mov ecx, dword [ecx]
lea eax, [esp - 0x60]
cmp eax, dword [ecx + 8]
jbe 0x522ed5
sub esp, 0xe0
mov eax, dword [esp + 0xe4]
mov dword [esp], eax
mov eax, dword [esp + 0xe8]
mov dword [esp + 4], eax
call fcn.00522ee0
movzx eax, byte [esp + 0x18]
mov ecx, dword [esp + 8]
mov edx, dword [esp + 0xc]
test al, al
je 0x522e67
mov dword [esp + 0xd0], ecx
mov dword [esp + 0x44], edx
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.00523120
movzx eax, byte [esp + 0x14]
test al, al
je 0x522e67
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x10]
mov edx, eax
neg eax
test ecx, ecx
je 0x5224a2
mov ebx, dword [esp + 0xc]
cmp byte [ebx], 0x2c
jne 0x52250b
mov ecx, dword [esp + 0xd0]
mov dword [esp + 0xfc], ecx
mov ecx, dword [esp + 0x44]
mov dword [esp + 0x100], ecx
mov dword [esp + 0x104], eax
mov eax, dword [esp + 0xf0]
mov dword [esp + 0x10c], eax
mov eax, dword [esp + 0xec]
mov dword [esp + 0x108], eax
mov dword [esp + 0x114], 0x7fffffff
mov dword [esp + 0x110], 0xffffffff
mov byte [esp + 0x118], 0
mov byte [esp + 0x119], 1
add esp, 0xe0
ret
mov dword [esp + 0x90], edx
mov dword [esp + 0x40], eax
mov dword [esp], ebx
mov dword [esp + 4], ecx
call fcn.00522ee0
movzx eax, byte [esp + 0x18]
mov ecx, dword [esp + 8]
mov edx, dword [esp + 0xc]
test al, al
je 0x522e03
mov dword [esp + 0x8c], edx
mov dword [esp + 0xdc], ecx
mov ebx, dword [esp + 0x14]
mov ebp, dword [esp + 0x10]
test ebx, ebx
je 0x522557
cmp byte [ebp], 0x2c
jne 0x52256c
mov esi, dword [esp + 0x90]
add esi, 0xfffff1f0
xchg esi, ebx
neg ebx
xchg esi, ebx
jmp 0x52259d
mov dword [esp], ebp
mov dword [esp + 4], ebx
call fcn.00523120
mov esi, dword [esp + 8]
movzx eax, byte [esp + 0x14]
xchg esi, ebx
neg ebx
xchg esi, ebx
mov ebp, dword [esp + 0xc]
mov ebx, dword [esp + 0x10]
mov ecx, dword [esp + 0xdc]
mov edx, dword [esp + 0x8c]
test al, al
je 0x522e03
test ebx, ebx
jne 0x5225b4
mov ebx, 0xf
lea ebp, [0x96d460]
test ebx, ebx
jbe 0x522ecb
mov dword [esp + 0x90], esi
movzx eax, byte [ebp]
cmp al, 0x2c
je 0x522635
cmp al, 0x3b
je 0x522635
mov dword [esp + 0xfc], 0
mov dword [esp + 0x100], 0
mov dword [esp + 0x104], 0
mov dword [esp + 0x10c], 0
mov dword [esp + 0x108], 0
mov dword [esp + 0x114], 0
mov dword [esp + 0x110], 0
mov byte [esp + 0x118], 0
mov byte [esp + 0x119], 0
add esp, 0xe0
ret
lea ecx, [ebx - 1]
mov edx, ecx
neg ecx
sar ecx, 0x1f
and ecx, 1
add ecx, ebp
mov dword [esp + 0xd8], ecx
lea edi, [esp + 0x94]
xor eax, eax
call fcn.0046992b
lea edi, [esp + 0xa8]
call fcn.0046992b
mov ecx, dword [esp + 0xd8]
mov dword [esp], ecx
mov dword [esp + 4], edx
call fcn.00523600
movzx ecx, byte [esp + 0x24]
mov byte [esp + 0x2b], cl
mov edx, dword [esp + 0x20]
mov ebx, dword [esp + 0x1c]
lea edi, [esp + 0xbc]
lea esi, [esp + 8]
call fcn.00469e0e
lea edi, [esp + 0x94]
lea esi, [esp + 0xbc]
call fcn.00469e0e
movzx ecx, byte [esp + 0x2b]
test cl, cl
je 0x522d9f
test edx, edx
je 0x522d9f
cmp byte [ebx], 0x2c
jne 0x522d9f
lea eax, [edx - 1]
mov ecx, eax
neg eax
sar eax, 0x1f
and eax, 1
add eax, ebx
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.00523600
movzx eax, byte [esp + 0x24]
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x88], ecx
lea edi, [esp + 0xbc]
lea esi, [esp + 8]
call fcn.00469e0e
lea edi, [esp + 0xa8]
lea esi, [esp + 0xbc]
call fcn.00469e0e
test al, al
je 0x522d3b
mov eax, dword [esp + 0x88]
test eax, eax
jne 0x522d3b
mov eax, dword [esp + 0xf4]
add eax, 0x1ad9c900
mov edx, dword [esp + 0xf8]
adc edx, 0x7ffffffe
mov dword [esp + 4], edx
mov dword [esp], eax
mov byte [esp + 8], 0
call fcn.0051fd20
mov eax, dword [esp + 0xc]
mov dword [esp + 0x34], eax
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x38], ecx
mov edx, dword [esp + 0xf8]
mov dword [esp + 4], edx
mov edx, dword [esp + 0xf4]
mov dword [esp], edx
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0x15180
call fcn.00460e00
mov eax, dword [esp + 0x38]
imul eax, eax, 0x15180
mov dword [esp + 0x88], eax
sar eax, 0x1f
mov dword [esp + 0x84], eax
mov edx, dword [esp + 0x10]
mov dword [esp + 0x80], edx
mov ebx, dword [esp + 0x14]
mov dword [esp + 0x7c], ebx
mov ebp, dword [esp + 0x34]
mov esi, ebp
sar ebp, 0x1f
mov dword [esp + 0x78], ebp
nop
mov dword [esp], esi
lea edi, [esp + 4]
lea esi, [esp + 0x94]
call fcn.00469e0e
mov ecx, dword [esp + 0x40]
mov dword [esp + 0x18], ecx
call fcn.00523df0
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x74], eax
mov ecx, dword [esp + 0x34]
mov dword [esp], ecx
lea edi, [esp + 4]
lea esi, [esp + 0xa8]
call fcn.00469e0e
mov ecx, dword [esp + 0x90]
mov dword [esp + 0x18], ecx
call fcn.00523df0
mov eax, dword [esp + 0x74]
mov ecx, eax
sar eax, 0x1f
mov dword [esp + 0x4c], eax
mov edx, dword [esp + 0x1c]
mov dword [esp + 0x70], edx
mov ebx, edx
sar edx, 0x1f
mov dword [esp + 0x6c], edx
mov ebp, dword [esp + 0x80]
mov esi, dword [esp + 0x88]
add ebp, esi
mov dword [esp + 0x2c], ebp
mov esi, dword [esp + 0x7c]
mov edi, dword [esp + 0x84]
adc esi, edi
mov dword [esp + 0x30], esi
cmp edx, eax
xchg edi, ebx
setl bl
xchg edi, ebx
xchg ebp, ebx
sete bl
xchg ebp, ebx
cmp ebx, ecx
xchg esi, ebx
setb bl
xchg esi, ebx
and esi, ebp
or edi, esi
xchg edi, eax
mov byte [esp + 0x2a], al
xchg edi, eax
mov ebp, dword [esp + 0x34]
add ebp, 0xd116ebf
mov eax, dword [esp + 0x78]
adc eax, 0x44
mov dword [esp + 0x84], eax
shr eax, 1
mov ecx, 0xa3d70a3e
mul ecx
shr edx, 7
mov dword [esp + 0x80], edx
mov eax, ebp
shr eax, 1
mul ecx
shr edx, 7
mov dword [esp + 0x7c], edx
mov eax, dword [esp + 0x80]
imul ebx, eax, 0x190
mov edi, dword [esp + 0x84]
sub edi, ebx
mov ebx, eax
mov eax, edi
mov esi, 0xa3d70a
mul esi
mov dword [esp + 0x80], edx
lea esi, [edi + edi*2]
shl esi, 5
mov edi, dword [esp + 0x7c]
imul edx, edi, 0x190
sub ebp, edx
lea edx, [ebp + esi]
shr edx, 1
mov ebp, eax
mov eax, edx
mul ecx
shr edx, 7
add edi, 0
adc ebx, 0
add ebp, edi
mov eax, dword [esp + 0x80]
adc eax, ebx
add edx, ebp
adc eax, 0
mov ebx, eax
mov eax, 0x190
mov ebp, edx
mul edx
imul esi, ebx, 0x190
add edx, esi
mov esi, eax
mov eax, 0x23ab1
mov edi, edx
mul ebp
mov dword [esp + 0x60], eax
imul ebx, ebx, 0x23ab1
add edx, ebx
mov dword [esp + 0x80], edx
mov ebx, dword [esp + 0x34]
sub ebx, esi
mov dword [esp + 0x7c], ebx
mov ebp, dword [esp + 0x78]
sbb ebp, edi
mov dword [esp + 0x84], ebp
add ebx, 0xd116ebf
mov dword [esp + 0x3c], ebx
adc ebp, 0x44
shr ebx, 1
mov eax, ecx
mul ebx
shr edx, 5
mov eax, ebp
shr eax, 1
mov ebx, edx
mul ecx
shr edx, 5
mov dword [esp + 0x68], edx
imul eax, ebx, 0x64
mov edi, dword [esp + 0x3c]
sub edi, eax
imul eax, edx, 0x64
sub ebp, eax
mov eax, ebp
mov esi, 0x28f5c28
mul esi
lea ebp, [ebp + ebp*2]
shl ebp, 5
add ebp, edi
shr ebp, 1
mov esi, eax
mov eax, ebp
mov ebp, edx
mul ecx
shr edx, 5
add ebx, 0
mov eax, dword [esp + 0x68]
adc eax, 0
add esi, ebx
adc ebp, eax
add edx, esi
adc ebp, 0
mov eax, 0x64
mov ecx, edx
mul edx
imul ebx, ebp, 0x64
add edx, ebx
mov ebx, eax
mov eax, 0x8eac
mov esi, edx
mul ecx
imul ecx, ebp, 0x8eac
add ecx, edx
mov edx, dword [esp + 0x7c]
sub edx, ebx
mov ebx, dword [esp + 0x84]
sbb ebx, esi
mov dword [esp + 0x84], ebx
mov ebp, edx
add edx, 0xd116ebf
adc ebx, 0x44
mov edi, ebx
shr ebx, 2
mov dword [esp + 0x50], ebx
shr edx, 2
shl edi, 0x1e
or edi, edx
mov dword [esp + 0x7c], edi
shl ebx, 2
shl edi, 2
mov esi, dword [esp + 0x7c]
shr esi, 0x1e
or esi, ebx
mov dword [esp + 0x68], esi
mov ebx, eax
mov eax, 0x5b5
mov esi, dword [esp + 0x7c]
mul esi
mov esi, dword [esp + 0x50]
imul esi, esi, 0x5b5
add edx, esi
mov dword [esp + 0x7c], edx
mov esi, dword [esp + 0x60]
add esi, ebx
mov ebx, dword [esp + 0x80]
adc ecx, ebx
sub ebp, edi
mov ebx, dword [esp + 0x84]
mov edi, dword [esp + 0x68]
sbb ebx, edi
add ebp, 0xd116ebf
adc ebx, 0x44
mov edi, eax
mov eax, 0x16d
mul ebp
imul ebx, ebx, 0x16d
add edx, ebx
add edi, esi
mov ebx, dword [esp + 0x7c]
adc ebx, ecx
add eax, edi
adc edx, ebx
mov ecx, eax
mov eax, 0x15180
mov ebx, edx
mul ecx
imul ecx, ebx, 0x15180
add ecx, edx
mov edx, eax
add eax, 0xe5263700
mov dword [esp + 0x64], eax
movzx ebx, byte [esp + 0x2a]
test bl, bl
je 0x522b16
mov ebp, dword [esp + 0x6c]
mov esi, dword [esp + 0x70]
mov edi, dword [esp + 0x4c]
mov ebp, dword [esp + 0x74]
mov dword [esp + 0x54], ebp
mov ebp, dword [esp + 0x44]
mov dword [esp + 0x5c], ebp
mov ebp, dword [esp + 0x40]
mov dword [esp + 0x58], ebp
mov ebp, dword [esp + 0xd0]
mov dword [esp + 0xd4], ebp
mov ebp, dword [esp + 0x90]
mov dword [esp + 0x40], ebp
mov ebp, dword [esp + 0x8c]
mov dword [esp + 0x44], ebp
mov ebp, dword [esp + 0xdc]
mov dword [esp + 0xd0], ebp
mov ebp, dword [esp + 0x6c]
jmp 0x522b52
mov ebp, dword [esp + 0x4c]
mov esi, dword [esp + 0x74]
mov edi, dword [esp + 0x6c]
mov ebp, dword [esp + 0x70]
mov dword [esp + 0x54], ebp
mov ebp, dword [esp + 0x8c]
mov dword [esp + 0x5c], ebp
mov ebp, dword [esp + 0x90]
mov dword [esp + 0x58], ebp
mov ebp, dword [esp + 0xdc]
mov dword [esp + 0xd4], ebp
mov ebp, dword [esp + 0x4c]
mov dword [esp + 0x48], esi
mov dword [esp + 0x4c], ebp
mov dword [esp + 0x80], edx
mov dword [esp + 0x7c], ecx
mov eax, dword [esp + 0x30]
cmp ebp, eax
xchg ebp, ebx
setg bl
xchg ebp, ebx
sete cl
mov edx, dword [esp + 0x2c]
cmp edx, esi
xchg esi, ebx
setb bl
xchg esi, ebx
and esi, ecx
or ebp, esi
xchg ebp, eax
test al, al
xchg ebp, eax
jne 0x522cb0
cmp edi, eax
setl al
sete cl
mov ebp, dword [esp + 0x54]
cmp edx, ebp
setae dl
and edx, ecx
or edx, eax
test dl, dl
je 0x522c25
mov eax, dword [esp + 0xd0]
mov dword [esp + 0xfc], eax
mov eax, dword [esp + 0x44]
mov dword [esp + 0x100], eax
mov eax, dword [esp + 0x40]
mov dword [esp + 0x104], eax
mov eax, dword [esp + 0x80]
add ebp, eax
mov ecx, dword [esp + 0x7c]
adc edi, ecx
add ebp, 0xe5263700
adc edi, 0x80000001
mov dword [esp + 0x10c], edi
mov dword [esp + 0x108], ebp
add eax, 0xe7076a80
adc ecx, 0x80000001
mov dword [esp + 0x114], ecx
mov dword [esp + 0x110], eax
mov byte [esp + 0x118], bl
mov byte [esp + 0x119], 1
add esp, 0xe0
ret
mov eax, dword [esp + 0xd4]
mov dword [esp + 0xfc], eax
mov eax, dword [esp + 0x5c]
mov dword [esp + 0x100], eax
mov eax, dword [esp + 0x58]
mov dword [esp + 0x104], eax
xor ebx, 1
mov eax, dword [esp + 0x80]
mov ecx, dword [esp + 0x48]
add ecx, eax
mov edx, dword [esp + 0x7c]
mov esi, dword [esp + 0x4c]
adc esi, edx
add ecx, 0xe5263700
adc esi, 0x80000001
mov dword [esp + 0x10c], esi
mov dword [esp + 0x108], ecx
add eax, ebp
adc edx, edi
add eax, 0xe5263700
adc edx, 0x80000001
mov dword [esp + 0x114], edx
mov dword [esp + 0x110], eax
mov byte [esp + 0x118], bl
mov byte [esp + 0x119], 1
add esp, 0xe0
ret
mov eax, dword [esp + 0x80]
mov ecx, eax
add eax, 0xe5263700
mov eax, dword [esp + 0x7c]
mov edx, eax
adc eax, 0x80000001
mov ebp, dword [esp + 0xd0]
mov dword [esp + 0xfc], ebp
mov ebp, dword [esp + 0x44]
mov dword [esp + 0x100], ebp
mov ebp, dword [esp + 0x40]
mov dword [esp + 0x104], ebp
mov dword [esp + 0x10c], eax
mov eax, dword [esp + 0x64]
mov dword [esp + 0x108], eax
mov eax, dword [esp + 0x48]
add ecx, eax
mov eax, dword [esp + 0x4c]
adc edx, eax
add ecx, 0xe5263700
adc edx, 0x80000001
mov dword [esp + 0x114], edx
mov dword [esp + 0x110], ecx
mov byte [esp + 0x118], bl
mov byte [esp + 0x119], 1
add esp, 0xe0
ret
mov dword [esp + 0xfc], 0
mov dword [esp + 0x100], 0
mov dword [esp + 0x104], 0
mov dword [esp + 0x10c], 0
mov dword [esp + 0x108], 0
mov dword [esp + 0x114], 0
mov dword [esp + 0x110], 0
mov byte [esp + 0x118], 0
mov byte [esp + 0x119], 0
add esp, 0xe0
ret
mov dword [esp + 0xfc], 0
mov dword [esp + 0x100], 0
mov dword [esp + 0x104], 0
mov dword [esp + 0x10c], 0
mov dword [esp + 0x108], 0
mov dword [esp + 0x114], 0
mov dword [esp + 0x110], 0
mov byte [esp + 0x118], 0
mov byte [esp + 0x119], 0
add esp, 0xe0
ret
mov dword [esp + 0xfc], 0
mov dword [esp + 0x100], 0
mov dword [esp + 0x104], 0
mov dword [esp + 0x10c], 0
mov dword [esp + 0x108], 0
mov dword [esp + 0x114], 0
mov dword [esp + 0x110], 0
mov byte [esp + 0x118], 0
mov byte [esp + 0x119], 0
add esp, 0xe0
ret
mov dword [esp + 0xfc], 0
mov dword [esp + 0x100], 0
mov dword [esp + 0x104], 0
mov dword [esp + 0x10c], 0
mov dword [esp + 0x108], 0
mov dword [esp + 0x114], 0
mov dword [esp + 0x110], 0
mov byte [esp + 0x118], 0
mov byte [esp + 0x119], 0
add esp, 0xe0
ret
xor eax, eax
mov ecx, eax
call fcn.004696f0
nop
call fcn.00468280
jmp fcn.00522410