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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
lea eax, [esp - 0x44]
cmp eax, dword [ecx + 8]
jbe 0x474290
sub esp, 0xc4
mov ecx, dword [esp + 0xe4]
test ecx, ecx
je 0x474249
mov edx, dword [esp + 0xcc]
lea ebx, [edx - 1]
test ebx, ebx
jge 0x474236
neg ebx
lea eax, [ebx - 1]
mov ebx, 0xc
cmp ebx, 0xffffffff
je 0x47422f
cdq
idiv ebx
lea edx, [eax + 1]
mov ebp, dword [esp + 0xc8]
sub ebp, edx
lea edx, [eax + eax*2]
mov esi, dword [esp + 0xcc]
lea edx, [esi + edx*4 + 0xb]
cmp edx, 0xc
jl 0x474226
mov eax, edx
mov esi, eax
cmp ebx, 0xffffffff
je 0x47421f
cdq
idiv ebx
lea edx, [eax + ebp]
lea ebx, [eax + eax*2]
shl ebx, 2
sub esi, ebx
mov dword [esp + 0x2c], edx
mov dword [esp + 0x50], esi
mov ebx, dword [esp + 0xe0]
test ebx, ebx
jge 0x474207
mov ebp, ebx
neg ebx
lea eax, [ebx - 1]
mov ebx, 0x3b9aca00
cmp ebx, 0xffffffff
je 0x474200
cdq
idiv ebx
lea edx, [eax + 1]
mov edi, dword [esp + 0xdc]
sub edi, edx
imul eax, eax, 0x3b9aca00
lea edx, [ebp + eax + 0x3b9aca00]
cmp edx, 0x3b9aca00
jl 0x4741f7
mov eax, edx
mov ebp, eax
cmp ebx, 0xffffffff
je 0x4741f0
cdq
idiv ebx
lea edx, [eax + edi]
imul eax, eax, 0x3b9aca00
sub ebp, eax
mov dword [esp + 0x4c], ebp
test edx, edx
jge 0x4741df
mov ebx, edx
neg edx
lea eax, [edx - 1]
mov edi, 0x3c
cmp edi, 0xffffffff
je 0x4741d8
cdq
idiv edi
lea edx, [eax + 1]
mov ebp, dword [esp + 0xd8]
sub ebp, edx
imul eax, eax, 0x3c
lea edx, [ebx + eax + 0x3c]
cmp edx, 0x3c
jl 0x4741cf
mov eax, edx
mov ebx, eax
cmp edi, 0xffffffff
je 0x4741c8
cdq
idiv edi
lea edx, [eax + ebp]
imul eax, eax, 0x3c
sub ebx, eax
mov dword [esp + 0x48], ebx
test edx, edx
jge 0x4741bc
mov ebp, edx
neg edx
lea eax, [edx - 1]
cmp edi, 0xffffffff
je 0x4741b5
cdq
idiv edi
lea edx, [eax + 1]
mov ecx, dword [esp + 0xd4]
sub ecx, edx
imul eax, eax, 0x3c
lea edx, [ebp + eax + 0x3c]
cmp edx, 0x3c
jl 0x4741ae
mov eax, edx
mov ebp, eax
cmp edi, 0xffffffff
je 0x4741a7
cdq
idiv edi
add ecx, eax
imul eax, eax, 0x3c
sub ebp, eax
mov dword [esp + 0x60], ecx
mov dword [esp + 0x54], ebp
test ecx, ecx
jge 0x474190
neg ecx
lea eax, [ecx - 1]
mov ecx, 0x18
cmp ecx, 0xffffffff
je 0x474189
cdq
idiv ecx
lea edx, [eax + eax*2]
lea edi, [eax + 1]
mov eax, ebx
mov ebx, dword [esp + 0xd0]
sub ebx, edi
mov edi, dword [esp + 0x60]
lea edx, [edi + edx*8 + 0x18]
mov dword [esp + 0x60], edx
cmp edx, 0x18
jl 0x47417e
mov edi, eax
mov eax, edx
cmp ecx, 0xffffffff
je 0x474177
cdq
idiv ecx
lea ecx, [eax + ebx]
lea edx, [eax + eax*2]
shl edx, 3
mov ebx, dword [esp + 0x60]
sub ebx, edx
mov dword [esp + 0x58], ecx
mov dword [esp + 0x44], ebx
mov eax, dword [esp + 0x2c]
mov edx, eax
add eax, 0xd116ebf
mov dword [esp + 0x30], eax
mov dword [esp], eax
sar edx, 0x1f
mov edi, dword [esp + 0x2c]
add edi, 0xd116ebf
adc edx, 0x44
mov dword [esp + 0xa8], edx
mov dword [esp + 4], edx
mov dword [esp + 8], 0x190
mov dword [esp + 0xc], 0
call fcn.00445120
mov eax, dword [esp + 0x10]
mov ecx, eax
mov eax, 0x190
mul ecx
mov ebx, dword [esp + 0x30]
mov ebp, ebx
sub ebx, eax
mov dword [esp + 0x30], ebx
mov esi, eax
mov eax, ecx
mov edi, 0x23ab1
mov ecx, edx
mul edi
mov dword [esp + 0xa4], edx
mov dword [esp + 0x68], eax
mov edi, dword [esp + 0x14]
mov dword [esp + 0x5c], edi
mov dword [esp], ebx
imul edi, edi, 0x190
add ecx, edi
sub ebp, esi
mov ebp, dword [esp + 0xa8]
sbb ebp, ecx
mov dword [esp + 0xa8], ebp
mov dword [esp + 4], ebp
mov dword [esp + 8], 0x64
mov dword [esp + 0xc], 0
call fcn.00445120
mov eax, dword [esp + 0x10]
mov ecx, eax
mov eax, 0x64
mul ecx
mov ebx, dword [esp + 0x30]
mov ebp, ebx
sub ebx, eax
mov esi, eax
mov eax, ecx
mov edi, 0x8eac
mov ecx, edx
mul edi
mov dword [esp + 0xa0], edx
mov dword [esp + 0x9c], eax
mov edi, dword [esp + 0x68]
add eax, edi
mov dword [esp + 0x98], eax
mov edi, dword [esp + 0x14]
mov dword [esp + 0x94], edi
imul edi, edi, 0x64
add ecx, edi
sub ebp, esi
mov ebp, dword [esp + 0xa8]
sbb ebp, ecx
mov ecx, ebx
shr ebx, 2
mov esi, ebp
shl ebp, 0x1e
or ebx, ebp
mov ebp, ebx
shl ebx, 2
mov dword [esp + 0x90], ebx
mov edi, ecx
sub ecx, ebx
mov eax, ebp
mov ebx, 0x5b5
mul ebx
mov dword [esp + 0x8c], edx
mov dword [esp + 0x88], eax
mov ebx, dword [esp + 0x98]
add ebx, eax
mov dword [esp + 0x84], ebx
mov eax, ecx
mov edx, 0x16d
mul edx
mov dword [esp + 0x80], edx
mov dword [esp + 0x7c], eax
add eax, ebx
mov dword [esp + 0x78], eax
mov eax, dword [esp + 0x50]
inc eax
mov dword [esp + 0xcc], eax
mov eax, dword [esp + 0x5c]
imul eax, eax, 0x23ab1
mov ecx, dword [esp + 0xa4]
add eax, ecx
mov ecx, dword [esp + 0x94]
imul ecx, ecx, 0x8eac
mov ebx, dword [esp + 0xa0]
add ecx, ebx
mov ebx, dword [esp + 0x9c]
mov edx, dword [esp + 0x68]
add ebx, edx
adc eax, ecx
mov ecx, esi
shr esi, 2
mov edx, esi
shl esi, 2
shr ebp, 0x1e
or esi, ebp
mov ebx, dword [esp + 0x90]
sub edi, ebx
sbb ecx, esi
imul edx, edx, 0x5b5
mov ebx, dword [esp + 0x8c]
add edx, ebx
mov ebx, dword [esp + 0x98]
mov ebp, dword [esp + 0x88]
add ebx, ebp
adc eax, edx
imul ecx, ecx, 0x16d
mov edx, dword [esp + 0x80]
add ecx, edx
mov edx, dword [esp + 0x7c]
mov ebx, dword [esp + 0x84]
add edx, ebx
adc eax, ecx
mov ecx, dword [esp + 0x50]
cmp ecx, 0xd
jae 0x474170
lea edx, [0x745560]
mov ecx, dword [edx + ecx*4]
mov edx, dword [esp + 0x78]
mov ebx, edx
add edx, ecx
mov ebp, ecx
sar ecx, 0x1f
add ebx, ebp
adc eax, ecx
mov ecx, dword [esp + 0x2c]
mov ebx, ecx
sar ecx, 0x1f
mov ebp, ecx
and ecx, 3
lea esi, [ebx + ecx]
and esi, 3
sub esi, ecx
test esi, esi
jne 0x474165
mov ecx, eax
mov eax, ebx
mov esi, 0x51eb851f
mov edi, edx
imul esi
mov esi, edx
sar edx, 5
sub edx, ebp
imul edx, edx, 0x64
mov eax, ebx
sub ebx, edx
test ebx, ebx
je 0x47414e
mov eax, 1
test al, al
je 0x473f47
mov edx, dword [esp + 0xcc]
cmp edx, 3
jl 0x473f47
add edi, 1
adc ecx, 0
mov edx, dword [esp + 0x58]
dec edx
mov dword [esp + 0x74], edx
mov ebx, edx
add edx, edi
mov eax, edx
mov ebp, 0x15180
mul ebp
mov ebp, dword [esp + 0x44]
imul ebp, ebp, 0xe10
mov esi, dword [esp + 0x54]
imul esi, esi, 0x3c
add ebp, esi
mov esi, dword [esp + 0x48]
add ebp, esi
mov dword [esp + 0x70], ebp
add ebp, eax
mov dword [esp + 0x6c], ebp
add ebp, 0xe5263700
mov dword [esp + 0x34], ebp
mov esi, dword [esp + 0xe4]
mov dword [esp], esi
mov dword [esp + 4], ebp
sar ebx, 0x1f
mov esi, dword [esp + 0x74]
add esi, edi
adc ecx, ebx
imul ecx, ecx, 0x15180
add ecx, edx
mov edx, dword [esp + 0x70]
mov ebx, edx
sar edx, 0x1f
add ebx, eax
adc ecx, edx
mov edx, dword [esp + 0x6c]
add edx, 0xe5263700
adc ecx, 0x80000001
mov dword [esp + 0x38], ecx
mov dword [esp + 8], ecx
call fcn.00474350
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x40], ecx
mov edx, dword [esp + 0x20]
mov ebx, dword [esp + 0x1c]
mov dword [esp + 0x3c], ebx
mov ebp, dword [esp + 0x28]
mov esi, dword [esp + 0x24]
mov dword [esp + 0x64], esi
test ecx, ecx
je 0x474141
mov eax, dword [esp + 0x34]
mov edi, eax
sub eax, ecx
sar ecx, 0x1f
mov esi, dword [esp + 0x40]
sub edi, esi
mov edi, dword [esp + 0x38]
sbb edi, ecx
cmp edi, edx
sete cl
cmp eax, ebx
setb bl
and ecx, ebx
cmp edi, edx
setl bl
or ebx, ecx
test bl, bl
jne 0x474117
cmp edi, ebp
sete cl
mov edx, dword [esp + 0x64]
cmp eax, edx
setae al
and ecx, eax
cmp edi, ebp
setg al
or eax, ecx
test al, al
jne 0x4740f7
mov eax, dword [esp + 0x34]
mov ecx, eax
sub eax, esi
mov edx, esi
sar esi, 0x1f
sub ecx, edx
mov ecx, dword [esp + 0x38]
sbb ecx, esi
add eax, 0x7791f700
mov dword [esp + 0xb4], 0
mov dword [esp + 0xb8], 0
mov dword [esp + 0xb4], eax
adc ecx, 0xe
mov dword [esp + 0xb8], ecx
mov eax, dword [esp + 0x4c]
mov dword [esp + 0xbc], eax
mov dword [esp + 0xc0], 0
mov eax, dword [esp + 0xe4]
lea ecx, [0x769120]
cmp eax, ecx
jne 0x4740b8
xor eax, eax
mov dword [esp + 0xc0], eax
mov ecx, dword [esp + 0xbc]
mov edx, dword [esp + 0xb8]
mov ebx, dword [esp + 0xb4]
mov dword [esp + 0xe8], ebx
mov dword [esp + 0xec], edx
mov dword [esp + 0xf0], ecx
mov dword [esp + 0xf4], eax
add esp, 0xc4
ret
mov eax, dword [esp + 0xe4]
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], ebp
call fcn.00474350
mov esi, dword [esp + 0x14]
jmp 0x47404e
mov eax, dword [esp + 0x3c]
add eax, 0xffffffff
mov ecx, dword [esp + 0xe4]
mov dword [esp], ecx
mov dword [esp + 4], eax
adc edx, 0xffffffff
mov dword [esp + 8], edx
call fcn.00474350
mov esi, dword [esp + 0x14]
jmp 0x47404e
mov ecx, dword [esp + 0x38]
mov eax, dword [esp + 0x34]
jmp 0x474063
sar esi, 7
sub esi, ebp
imul esi, esi, 0x190
sub eax, esi
test eax, eax
sete al
jmp 0x473f31
mov ecx, eax
mov edi, edx
xor eax, eax
jmp 0x473f31
call fcn.00424660
ud2
neg eax
jmp 0x473caa
mov edi, eax
mov ecx, ebx
mov ebx, edx
jmp 0x473cb9
neg eax
jmp 0x473c74
mov eax, ebx
mov ecx, 0x18
mov edx, dword [esp + 0x60]
mov ebx, dword [esp + 0xd0]
jmp 0x473c8d
neg eax
jmp 0x473c47
mov ebp, edx
jmp 0x473c4e
neg eax
jmp 0x473c1b
mov ecx, dword [esp + 0xd4]
jmp 0x473c2e
neg eax
jmp 0x473bf4
mov ebx, edx
mov edx, ebp
jmp 0x473bfc
neg eax
jmp 0x473bc8
mov edi, 0x3c
mov ebp, dword [esp + 0xd8]
jmp 0x473bdb
neg eax
jmp 0x473b99
mov ebp, edx
mov edx, edi
jmp 0x473ba4
neg eax
jmp 0x473b64
mov ebx, 0x3b9aca00
mov edx, dword [esp + 0xe0]
mov edi, dword [esp + 0xdc]
jmp 0x473b7d
neg eax
jmp 0x473b2a
mov esi, edx
mov edx, ebp
jmp 0x473b35
neg eax
jmp 0x473af7
mov edx, ebx
mov ebp, dword [esp + 0xc8]
mov ebx, 0xc
jmp 0x473b11
lea eax, [0x656aa6]
mov dword [esp + 0xac], eax
mov dword [esp + 0xb0], 0x26
lea eax, [0x60cc40]
mov dword [esp], eax
lea eax, [esp + 0xac]
mov dword [esp + 4], eax
call fcn.0040a860
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 8]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.004254c0
ud2
call fcn.00448420
jmp fcn.00473aa0