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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0xbc
push ebx
push esi
push edi
mov dword [esp + 0x44], edx
mov ebx, ecx
mov dword [esp + 0x14], 0xffffffff
xor eax, eax
push 2
mov dword [esp + 0x2c], 1
mov dword [esp + 0x54], ebx
mov dword [esp + 0x10], eax
pop esi
jmp 0x474c5b
mov ecx, dword [esp + 0xc]
mov dword [esp + ecx*4 + 0x64], 0xa8ed40a1
inc dword [esp + 0xc]
cmp dword [esp + 0xc], esi
jl 0x474c4b
push 0xfffffffffffffff6
pop edi
mov dword [esp + 0x14], edi
jmp 0x474d1c
mov dword [esp + 0x30], 0xffffffff
mov dword [esp + 0x1c], 3
mov dword [esp + 0x30], 0xcdf98a59
mov ecx, dword [esp + 0x14]
mov ecx, dword [esp + 0x14]
mov ecx, dword [esp + 0x30]
mov ecx, dword [esp + 0x30]
add ecx, 0xffff6eb1
neg ecx
sbb ecx, ecx
inc ecx
imul ecx, dword [esp + 0x14]
add ecx, dword [esp + 0x14]
mov dword [esp + 0x28], ecx
mov ecx, dword [esp + 0x28]
cmp ecx, dword [esp + 0x14]
jl 0x474cfb
cmp dword [esp + 0x1c], eax
je 0x474cfb
mov dword [esp + 0x28], 1
cmp dword [esp + 0x28], eax
jl 0x474ce1
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + ecx*4 + 0x64]
mov ecx, dword [esp + 0x28]
mov dword [esp + ecx*4 + 0x64], edx
dec dword [esp + 0x28]
jns 0x474ccb
mov dword [esp + 0x28], eax
jmp 0x474cf3
mov ecx, dword [esp + 0x28]
mov dword [esp + ecx*4 + 0x64], eax
inc dword [esp + 0x28]
cmp dword [esp + 0x28], esi
jl 0x474ce7
jmp 0x474d18
mov dword [esp + 0x4c], 0x255e
lea edx, [esp + 0x28]
lea ecx, [esp + 0x4c]
call fcn.004731a7
xor eax, eax
cmp dword [esp + 0x4c], eax
jne 0x474d26
inc dword [esp + 0x14]
cmp dword [esp + 0x14], esi
jne 0x474c6d
cmp dword [ebx + 0x10], eax
jne 0x474d32
xor al, al
jmp 0x47547b
mov dword [esp + 0x10], 0x2e91a04
lea ecx, [esp + 0xa4]
push 1
call fcn.00422023
mov dword [esp + 0x1c], 1
lea edx, [esp + 0xa4]
lea ecx, [esp + 0x58]
call fcn.00473602
mov dword [esp + 0x10], 0x1d
cmp dword [esp + 0x10], 0xffffffe8
je 0x474d91
xor eax, eax
mov byte [esp + 0x37], al
cmp byte [esp + 0x37], 0
je 0x474d86
push eax
push eax
call dword [0xad12ec]
xor eax, eax
dec dword [esp + 0x10]
cmp dword [esp + 0x10], 0xffffffe8
jne 0x474d71
xor eax, eax
mov dword [esp + 0x10], eax
cmp dword [esp + 0x10], eax
jl 0x474dfa
push dword [esp + 0x58]
movdqa xmm0, xmmword [0xac00c0]
lea ecx, [esp + 0xc4]
push ecx
lea ecx, [esp + 0xb8]
mov dword [esp + 0x78], eax
push ecx
push eax
lea ecx, [esp + 0x80]
mov dword [esp + 0x84], eax
movdqu xmmword [esp + 0xc0], xmm0
mov dword [esp + 0x88], eax
call fcn.004241ed
mov eax, dword [esp + 0x70]
lea ecx, [esp + 0x70]
inc dword [eax + 8]
call fcn.004220f5
dec dword [esp + 0x10]
push 0
pop eax
jns 0x474d9d
lea ecx, [esp + 0xa4]
call fcn.004220f5
lea ecx, [esp + 0x44]
call fcn.00473cd4
mov dword [esp + 0x14], 0xffffffff
xor ecx, ecx
mov dword [esp + 0x20], 0x1857497f
mov dword [esp + 0x30], edi
mov dword [esp + 0x1c], 0xe421
mov dword [esp + 0x5c], ecx
push 0xfffffffffffffffb
mov dword [esp + 0x20], 0x83eb3d01
mov dword [esp + 0x10], ecx
pop edi
jmp 0x474e4e
mov eax, dword [esp + 0xc]
mov dword [esp + eax*4 + 0x7c], edi
inc dword [esp + 0xc]
cmp dword [esp + 0xc], esi
jl 0x474e42
push 0xffffffffffffffe5
mov dword [esp + 0x18], 0xffffffff
pop esi
cmp dword [esp + 0x14], esi
jl 0x4750b7
mov dword [esp + 0xc], ecx
mov dword [esp + 0x2c], 8
mov dword [esp + 0x1c], 0xffffffff
mov dword [esp + 0x1c], 6
mov dword [esp + 0x1c], 0x8e04799c
mov dword [esp + 0x1c], 0x6c4949f7
mov dword [esp + 0x1c], 0xba2848aa
mov eax, dword [esp + 0xc]
mov eax, dword [esp + 0x14]
cmp dword [esp + 0xc], 5
jae 0x474f48
xor ebx, ebx
xor edx, edx
inc ebx
mov dword [esp + 0xc], ebx
mov eax, dword [esp + 0xc]
mov eax, dword [esp + 0x2c]
mov eax, dword [esp + 0x14]
cmp eax, 0x8906
setg dl
cmp edx, dword [esp + 0x14]
jl 0x474ed7
mov eax, dword [esp + 0x2c]
mov eax, dword [esp + 0x14]
dec eax
neg eax
sbb eax, eax
neg eax
inc eax
cmp eax, dword [esp + 0x2c]
jne 0x474ef1
mov eax, ecx
cmp dword [esp + 0xc], ecx
je 0x474ef3
mov eax, ebx
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x20]
sub eax, dword [esp + 0x14]
neg eax
sbb eax, eax
inc eax
imul eax, dword [esp + 0x14]
test eax, eax
jne 0x474f11
mov eax, dword [esp + 0x2c]
mov edx, dword [esp + 0x2c]
xor ebx, ebx
mov dword [esp + 0x80], edx
mov eax, dword [esp + 0x14]
cmp edx, eax
setl bl
add ebx, 0x2b89c392
sub ebx, dword [esp + 0x2c]
neg ebx
sbb ebx, ebx
inc ebx
mov dword [esp + 0x2c], ebx
cmp dword [esp + 0x2c], 0x843c6bcf
jne 0x474f48
mov eax, ecx
jmp 0x474f4b
xor eax, eax
inc eax
mov dword [esp + 0x30], eax
imul eax, dword [esp + 0x30], 0xfff8
test eax, eax
jne 0x474fc3
mov dword [esp + 0x20], edi
jmp 0x474fba
mov byte [esp + 0x1b], cl
cmp byte [esp + 0x1b], 0
je 0x474fb6
mov dword [esp + 0x1c], 0x43b7
mov dword [esp + 0x10], 0x8e97eede
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x10], ecx
mov dword [esp + 0x10], 0xfffffffa
jmp 0x474fa6
mov byte [esp + 0x1b], cl
cmp byte [esp + 0x1b], 0
je 0x474fa2
push ecx
call dword [0xad1328]
xor ecx, ecx
dec dword [esp + 0x10]
cmp dword [esp + 0x10], esi
jl 0x474f8e
push ecx
push ecx
call dword [0xad1020]
xor ecx, ecx
inc dword [esp + 0x20]
cmp dword [esp + 0x20], 0x17
jg 0x474f61
jmp 0x475026
mov dword [esp + 0x10], 8
mov eax, dword [esp + 0x10]
sub eax, dword [esp + 0x10]
neg eax
sbb eax, eax
inc eax
cmp dword [esp + 0x10], eax
jne 0x474fe8
cmp dword [esp + 0x10], ecx
je 0x474fe8
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0x14]
xor ebx, ebx
mov eax, dword [esp + 0x80]
mov eax, dword [esp + 0x2c]
mov eax, dword [esp + 0x20]
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0x10]
add eax, dword [esp + 0xc]
cmp eax, 5
setne bl
xor edx, edx
add ebx, dword [esp + 0x10]
mov eax, dword [esp + 0x10]
cmp eax, ebx
setne dl
mov dword [esp + 0x2c], edx
mov dword [esp + 0x2c], ecx
cmp dword [esp + 0x2c], 0x1a
je 0x4750a5
mov dword [esp + 0x1c], 7
mov dword [esp + 0x1c], 0x40f4eb9
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x1c], ecx
lea ecx, [esp + 0x98]
mov dword [esp + 0x1c], 0xe2a7709b
mov dword [esp + 0x1c], 0x4a8f9b1
mov dword [esp + 0x1c], 0xbba6c15a
push 3
call fcn.00422023
lea edx, [esp + 0x98]
lea ecx, [esp + 0x94]
call fcn.00473e32
lea ecx, [esp + 0x5c]
call fcn.00473ef8
lea ecx, [esp + 0x98]
call fcn.004220f5
inc dword [esp + 0x2c]
cmp dword [esp + 0x2c], 0x1a
push 0
pop ecx
jne 0x475031
dec dword [esp + 0x14]
cmp dword [esp + 0x14], esi
jge 0x474e69
mov ebx, dword [esp + 0x50]
cmp dword [ebx + 0x14], 0x10
jb 0x4750c1
mov edi, dword [ebx]
jmp 0x4750c3
mov edi, ebx
xor esi, esi
cmp dword [ebx + 0x14], 0x10
mov dword [esp + 0x48], edi
jb 0x4750d3
mov ecx, dword [ebx]
jmp 0x4750d5
mov ecx, ebx
mov eax, dword [ebx + 0x10]
add eax, ecx
cmp edi, eax
je 0x475273
call fcn.00474b71
mov al, byte [edi]
cmp al, 0x30
jl 0x475153
cmp al, 0x39
jg 0x475153
mov dword [esp + 0x38], 8
mov dword [esp + 0xc], esi
jmp 0x475112
mov eax, dword [esp + 0xc]
mov dword [esp + eax*4 + 0xc0], 0x876942a1
inc dword [esp + 0xc]
cmp dword [esp + 0xc], 2
jl 0x4750ff
lea ecx, [esp + 0x38]
call fcn.0047412c
mov dword [esp + 0x38], esi
jmp 0x475131
call fcn.00474594
inc dword [esp + 0x38]
cmp dword [esp + 0x38], 1
jle 0x475128
mov edx, dword [esp + 0x44]
mov edi, dword [esp + 0x48]
imul ecx, dword [edx], 0xa
movsx eax, byte [edi]
add eax, 0xffffffd0
add eax, ecx
inc edi
mov dword [edx], eax
jmp 0x4750c5
mov dword [esp + 0x6c], 0xd06c
xor eax, eax
mov dword [esp + 0x40], 1
mov dword [esp + 0x20], 0x5637
mov dword [esp + 0x50], eax
mov ecx, dword [esp + 0x6c]
mov dword [esp + 0x40], ecx
mov dword [esp + 0x40], 0xffffffeb
jmp 0x47521b
mov dword [esp + 0xc], 4
xor ebx, ebx
mov dword [esp + 0x30], 0x67f8b4df
mov ecx, dword [esp + 0xc]
mov ecx, dword [esp + 0xc]
mov ecx, dword [esp + 0x20]
mov ecx, dword [esp + 0xc]
cmp ecx, 0xffffffff
mov ecx, dword [esp + 0xc]
setle bl
xor edx, edx
cmp ecx, ebx
setl dl
xor ebx, ebx
mov dword [esp + 0x30], edx
mov edx, dword [esp + 0x30]
mov ecx, dword [esp + 0xc]
cmp edx, ecx
setle bl
add ebx, dword [esp + 0xc]
je 0x4751dd
cmp dword [esp + 0x20], eax
je 0x4751dd
xor ecx, ecx
inc ecx
jmp 0x4751df
mov ecx, eax
imul ecx, ecx, 0x9974
test ecx, ecx
je 0x475207
mov byte [esp + 0x1b], al
cmp byte [esp + 0x1b], 0
je 0x475217
push eax
push 1
push 0xa5f
push eax
call dword [0xad14b8]
xor eax, eax
jmp 0x475217
mov dword [esp + 0x60], 0xee56e31b
mov dword [esp + 0x60], 1
inc dword [esp + 0x40]
cmp dword [esp + 0x40], 0xc
jne 0x475186
lea ecx, [esp + 0x44]
push ecx
push eax
call fcn.0047927b
mov dword [esp + 0x5c], 0x43b7
mov dword [esp + 0x44], 0x8e97eede
mov eax, dword [esp + 0x5c]
pop ecx
mov dword [esp + 0x40], esi
pop ecx
mov dword [esp + 0x3c], 0xfffffffa
jmp 0x475267
mov byte [esp + 0x36], 0
lea ecx, [esp + 0x36]
call fcn.00474a77
dec dword [esp + 0x3c]
cmp dword [esp + 0x3c], 0xffffffe5
jl 0x475255
jmp 0x474d2b
mov dword [esp + 0x10], 0x585b7f3
mov eax, 0x23f126c
mov dword [esp + 0x30], 0x8fde
xor ecx, ecx
mov dword [esp + 0x14], ecx
mov dword [esp + 0x84], eax
mov dword [esp + 0x88], eax
mov dword [esp + 0x8c], eax
mov dword [esp + 0x90], eax
mov dword [esp + 0x20], 0xa2c39d5b
mov dword [esp + 0x1c], 0x324015fb
mov dword [esp + 0xc], 0xffffffff
mov dword [esp + 0xc], ecx
jmp 0x4752d8
mov eax, dword [esp + 0xc]
mov dword [esp + eax*4 + 0x24], 0xfffffffc
inc dword [esp + 0xc]
cmp dword [esp + 0xc], 1
jl 0x4752c8
cmp dword [esp + 0x10], ecx
je 0x475353
mov eax, dword [esp + 0x10]
mov dword [esp + 0x10], eax
cmp dword [esp + 0x10], ecx
jne 0x47531a
mov eax, dword [esp + 0x24]
xor edx, edx
imul eax, dword [esp + 0x14]
cmp eax, 0x60a22152
setg dl
mov dword [esp + 0x10], edx
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x10]
sub edx, eax
sub edx, dword [esp + 0x30]
je 0x47531d
xor esi, esi
inc esi
mov eax, dword [esp + 0x30]
xor edx, edx
cmp eax, esi
mov eax, dword [esp + 0x24]
setle dl
xor ebx, ebx
cmp edx, eax
setle bl
xor edx, edx
mov dword [esp + 0x8c], ebx
mov eax, dword [esp + 0x14]
cmp ebx, eax
sete dl
imul edx, dword [esp + 0x30]
test edx, edx
je 0x475353
xor eax, eax
inc eax
jmp 0x475355
mov eax, ecx
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x24]
cmp dword [esp + 0x20], eax
jle 0x47536e
cmp dword [esp + 0x14], ecx
je 0x47536e
xor edx, edx
inc edx
jmp 0x475370
mov edx, ecx
mov eax, dword [esp + 0x1c]
xor ebx, ebx
cmp edx, eax
mov eax, dword [esp + 0x24]
setg bl
xor edx, edx
cmp ebx, eax
setle dl
sub edx, 0xbff6
mov dword [esp + 0xc], edx
mov eax, dword [esp + 0x30]
mov eax, dword [esp + 0x24]
mov eax, dword [esp + 0x20]
mov eax, dword [esp + 0xc]
mov eax, dword [esp + 0x24]
cmp dword [esp + 0xc], 0xfffffff7
je 0x4753b5
cmp dword [esp + 0x1c], ecx
jne 0x4753b5
mov edx, ecx
jmp 0x4753b8
xor edx, edx
inc edx
mov eax, dword [esp + 0x20]
xor ebx, ebx
cmp edx, eax
mov eax, dword [esp + 0x14]
setl bl
xor edx, edx
cmp ebx, eax
setne dl
cmp edx, dword [esp + 0xc]
jge 0x4753d8
mov eax, dword [esp + 0x24]
cmp dword [esp + 0x14], ecx
jne 0x4753e4
cmp dword [esp + 0x24], ecx
je 0x4753e7
xor ecx, ecx
inc ecx
mov edx, dword [esp + 0x24]
xor ebx, ebx
mov eax, dword [esp + 0x24]
cmp edx, eax
setl bl
xor edx, edx
mov dword [esp + 0x8c], ebx
mov eax, dword [esp + 0x24]
cmp eax, ecx
mov eax, dword [esp + 0x20]
setle dl
cmp edx, 1
sbb ecx, ecx
xor edx, edx
neg ecx
cmp ecx, eax
mov eax, dword [esp + 0x10]
setl dl
xor ecx, ecx
cmp edx, eax
mov eax, dword [esp + 0x20]
setle cl
xor edx, edx
cmp ecx, 0x386
setg dl
xor ebx, ebx
cmp edx, eax
mov eax, dword [esp + 0x24]
setl bl
xor ecx, ecx
cmp ebx, eax
setne cl
mov dword [esp + 0x20], ecx
xor ecx, ecx
mov eax, dword [esp + 0x20]
mov eax, dword [esp + 0x24]
mov eax, dword [esp + 0x14]
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0x24]
test eax, eax
mov al, 1
setns cl
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x10]
mov ecx, dword [esp + 0x24]
mov ecx, dword [esp + 0x24]
mov dword [esp + 0xc], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret