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

Disassembly:
sub esp, 0x180
mov eax, dword [0x4d1698]
xor eax, esp
mov dword [esp + 0x17c], eax
mov eax, dword [esp + 0x184]
push ebx
push ebp
push esi
mov dword [esp + 0x18], ecx
push edi
mov edx, 2
lea ecx, [esp + 0x90]
mov dword [esp + 0x10], 4
lea esi, [edx - 2]
cmp esi, 0x10
jge 0x47b98d
movzx esi, byte [eax]
movzx ebx, byte [eax + 4]
movzx edi, byte [eax + 1]
movzx ebp, byte [eax + 5]
shl esi, 8
or esi, edi
movzx edi, byte [eax + 2]
shl ebx, 8
or ebx, ebp
movzx ebp, byte [eax + 6]
shl esi, 8
or esi, edi
movzx edi, byte [eax + 3]
shl ebx, 8
or ebx, ebp
movzx ebp, byte [eax + 7]
shl esi, 8
or esi, edi
shl ebx, 8
or ebx, ebp
xor edi, edi
xor ebp, ebp
or edi, ebx
or esi, ebp
mov dword [ecx - 8], edi
mov dword [ecx - 4], esi
add eax, 8
lea esi, [edx - 1]
cmp esi, 0x10
jge 0x47b9e2
movzx esi, byte [eax]
movzx ebx, byte [eax + 4]
movzx edi, byte [eax + 1]
movzx ebp, byte [eax + 5]
shl esi, 8
or esi, edi
movzx edi, byte [eax + 2]
shl ebx, 8
or ebx, ebp
movzx ebp, byte [eax + 6]
shl esi, 8
or esi, edi
movzx edi, byte [eax + 3]
shl ebx, 8
or ebx, ebp
movzx ebp, byte [eax + 7]
shl esi, 8
or esi, edi
shl ebx, 8
or ebx, ebp
xor edi, edi
xor ebp, ebp
or edi, ebx
or esi, ebp
mov dword [ecx], edi
mov dword [ecx + 4], esi
add eax, 8
cmp edx, 0x10
jge 0x47ba35
movzx esi, byte [eax]
movzx ebx, byte [eax + 4]
movzx edi, byte [eax + 1]
movzx ebp, byte [eax + 5]
shl esi, 8
or esi, edi
movzx edi, byte [eax + 2]
shl ebx, 8
or ebx, ebp
movzx ebp, byte [eax + 6]
shl esi, 8
or esi, edi
movzx edi, byte [eax + 3]
shl ebx, 8
or ebx, ebp
movzx ebp, byte [eax + 7]
shl esi, 8
or esi, edi
shl ebx, 8
or ebx, ebp
xor edi, edi
xor ebp, ebp
or edi, ebx
or esi, ebp
mov dword [ecx + 8], edi
mov dword [ecx + 0xc], esi
add eax, 8
lea esi, [edx + 1]
cmp esi, 0x10
jge 0x47ba8b
movzx esi, byte [eax]
movzx ebx, byte [eax + 4]
movzx edi, byte [eax + 1]
movzx ebp, byte [eax + 5]
shl esi, 8
or esi, edi
movzx edi, byte [eax + 2]
shl ebx, 8
or ebx, ebp
movzx ebp, byte [eax + 6]
shl esi, 8
or esi, edi
movzx edi, byte [eax + 3]
shl ebx, 8
or ebx, ebp
movzx ebp, byte [eax + 7]
shl esi, 8
or esi, edi
shl ebx, 8
or ebx, ebp
xor edi, edi
xor ebp, ebp
or edi, ebx
or esi, ebp
mov dword [ecx + 0x10], edi
mov dword [ecx + 0x14], esi
add eax, 8
add edx, 4
add ecx, 0x20
dec dword [esp + 0x10]
jne 0x47b937
mov eax, dword [esp + 0x1c]
add eax, 0x18
push 0x40
push eax
lea edx, [esp + 0x50]
push edx
mov dword [esp + 0x40], eax
call fcn.0048ca30
mov edi, dword [esp + 0x78]
mov edx, dword [esp + 0x74]
mov ebx, 0xfffffffe
add esp, 0xc
mov dword [esp + 0x14], ebx
mov dword [esp + 0x10], 0x4d47f8
lea eax, [ebx + 2]
mov dword [esp + 0x18], eax
cmp eax, 0x10
jl 0x47bbed
lea ecx, [ebx - 0xd]
and ecx, 0x1f
mov eax, dword [esp + ecx*8 + 0x88]
mov ecx, dword [esp + ecx*8 + 0x8c]
and ebx, 0x1f
mov edx, dword [esp + ebx*8 + 0x8c]
mov dword [esp + 0x2c], ecx
mov ecx, dword [esp + ebx*8 + 0x88]
mov ebx, ecx
mov ebp, edx
shrd ebx, ebp, 0x13
xor edi, edi
or edi, ebx
mov dword [esp + 0x38], ecx
mov esi, ecx
mov dword [esp + 0x3c], edx
mov ebx, edx
shld edx, ecx, 3
add ecx, ecx
shr ebp, 0x13
add ecx, ecx
shl esi, 0xd
or esi, ebp
add ecx, ecx
shr ebx, 0x1d
or ebx, ecx
mov ecx, dword [esp + 0x3c]
xor ebp, ebp
or ebp, edx
mov edx, dword [esp + 0x38]
shrd edx, ecx, 6
xor esi, ebp
xor edi, ebx
shr ecx, 6
xor esi, ecx
mov ecx, dword [esp + 0x2c]
xor edi, edx
mov ebx, eax
mov ebp, ecx
shrd ebx, ebp, 8
mov dword [esp + 0x28], eax
mov dword [esp + 0x44], edi
xor edi, edi
or edi, ebx
mov edx, eax
mov ebx, eax
shrd eax, ecx, 1
shl edx, 0x18
shr ebp, 8
or edx, ebp
shr ecx, 1
shl ebx, 0x1f
or ebx, ecx
mov ecx, dword [esp + 0x28]
xor ebp, ebp
or ebp, eax
mov eax, dword [esp + 0x2c]
shrd ecx, eax, 7
shr eax, 7
xor edi, ebp
xor edx, ebx
mov ebx, dword [esp + 0x44]
xor edx, eax
xor edi, ecx
mov ecx, dword [esp + 0x14]
add ebx, edi
mov edi, dword [esp + 0x6c]
adc esi, edx
mov edx, dword [esp + 0x68]
lea eax, [ecx - 0xe]
and eax, 0x1f
add ebx, dword [esp + eax*8 + 0x88]
adc esi, dword [esp + eax*8 + 0x8c]
lea eax, [ecx - 5]
and eax, 0x1f
add ebx, dword [esp + eax*8 + 0x88]
adc esi, dword [esp + eax*8 + 0x8c]
mov eax, dword [esp + 0x18]
and eax, 0x1f
mov dword [esp + eax*8 + 0x88], ebx
mov dword [esp + eax*8 + 0x8c], esi
mov ebx, edi
mov eax, edi
mov esi, edx
shld ebx, esi, 0x17
xor ecx, ecx
or ecx, ebx
xor ebx, ebx
shl esi, 0x17
mov ebp, edx
shrd ebp, edi, 0x12
or ebx, ebp
mov ebp, dword [esp + 0x6c]
shr eax, 9
or eax, esi
xor eax, ebx
shr edi, 0x12
mov esi, edx
shl esi, 0xe
or esi, edi
xor ecx, esi
mov ebx, edx
shrd ebx, ebp, 0xe
xor edi, edi
or edi, ebx
mov esi, edx
xor eax, edi
shl esi, 0x12
shr ebp, 0xe
or esi, ebp
mov ebp, dword [esp + 0x70]
xor ecx, esi
mov esi, dword [esp + 0x6c]
and ebp, edx
mov edi, edx
mov edx, dword [esp + 0x74]
and edx, esi
not edi
and edi, dword [esp + 0x78]
mov ebx, esi
not ebx
and ebx, dword [esp + 0x7c]
xor edi, ebp
xor ebx, edx
mov edx, dword [esp + 0x18]
add eax, edi
adc ecx, ebx
and edx, 0x1f
add eax, dword [esp + edx*8 + 0x88]
adc ecx, dword [esp + edx*8 + 0x8c]
mov edx, dword [esp + 0x10]
add eax, dword [edx]
adc ecx, dword [edx + 4]
add eax, dword [esp + 0x80]
mov edx, dword [esp + 0x48]
adc ecx, dword [esp + 0x84]
mov edi, edx
mov dword [esp + 0x24], ecx
mov ecx, dword [esp + 0x4c]
mov dword [esp + 0x20], eax
mov eax, edx
mov ebx, ecx
shrd edi, ebx, 0x1c
xor esi, esi
or esi, edi
mov ebp, ecx
shld ebp, edx, 0x1e
shr ebx, 0x1c
shl eax, 4
or eax, ebx
shl edx, 0x1e
mov edi, ecx
shr edi, 2
xor ebx, ebx
or edi, edx
or ebx, ebp
mov edx, ecx
xor eax, ebx
mov ebx, dword [esp + 0x48]
xor esi, edi
shr edx, 7
xor edi, edi
mov ebp, ecx
shld ebp, ebx, 0x19
or edi, ebp
mov ebp, dword [esp + 0x54]
shl ebx, 0x19
or edx, ebx
xor esi, edx
mov edx, dword [esp + 0x48]
xor eax, edi
mov edi, dword [esp + 0x50]
xor ebp, ecx
and ebp, dword [esp + 0x5c]
mov ebx, edi
xor ebx, edx
and ebx, dword [esp + 0x58]
and edi, edx
mov edx, dword [esp + 0x54]
and edx, ecx
xor ebp, edx
mov edx, dword [esp + 0x78]
mov dword [esp + 0x80], edx
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x84], edx
mov edx, dword [esp + 0x70]
mov dword [esp + 0x78], edx
mov edx, dword [esp + 0x74]
xor ebx, edi
mov edi, dword [esp + 0x64]
mov dword [esp + 0x7c], edx
mov edx, dword [esp + 0x68]
add esi, ebx
mov ebx, dword [esp + 0x20]
adc eax, ebp
mov ebp, dword [esp + 0x58]
mov dword [esp + 0x70], edx
mov edx, dword [esp + 0x6c]
mov dword [esp + 0x74], edx
mov edx, dword [esp + 0x60]
add edx, ebx
adc edi, dword [esp + 0x24]
mov dword [esp + 0x60], ebp
mov ebp, dword [esp + 0x5c]
add esi, ebx
adc eax, dword [esp + 0x24]
mov ebx, dword [esp + 0x14]
add dword [esp + 0x10], 8
mov dword [esp + 0x64], ebp
mov ebp, dword [esp + 0x50]
mov dword [esp + 0x58], ebp
mov ebp, dword [esp + 0x54]
inc ebx
mov dword [esp + 0x4c], eax
mov dword [esp + 0x5c], ebp
mov ebp, dword [esp + 0x48]
lea eax, [ebx + 2]
mov dword [esp + 0x68], edx
mov dword [esp + 0x6c], edi
mov dword [esp + 0x50], ebp
mov dword [esp + 0x54], ecx
mov dword [esp + 0x48], esi
mov dword [esp + 0x14], ebx
cmp eax, 0x50
jl 0x47bacf
mov eax, dword [esp + 0x34]
add dword [eax], esi
mov esi, dword [esp + 0x4c]
adc dword [eax + 4], esi
mov eax, dword [esp + 0x1c]
add dword [eax + 0x20], ebp
adc dword [eax + 0x24], ecx
mov ecx, dword [esp + 0x58]
add dword [eax + 0x28], ecx
mov ecx, dword [esp + 0x5c]
adc dword [eax + 0x2c], ecx
mov ecx, dword [esp + 0x60]
add dword [eax + 0x30], ecx
mov ecx, dword [esp + 0x64]
adc dword [eax + 0x34], ecx
add dword [eax + 0x38], edx
mov edx, dword [esp + 0x70]
mov ecx, dword [esp + 0x74]
adc dword [eax + 0x3c], edi
add dword [eax + 0x40], edx
mov edx, dword [esp + 0x78]
adc dword [eax + 0x44], ecx
add dword [eax + 0x48], edx
mov ecx, dword [esp + 0x7c]
mov edx, dword [esp + 0x80]
adc dword [eax + 0x4c], ecx
add dword [eax + 0x50], edx
mov ecx, dword [esp + 0x84]
mov edx, 0
adc dword [eax + 0x54], ecx
mov ecx, 0x80
add dword [eax + 0x10], ecx
adc dword [eax + 0x14], edx
cmp dword [eax + 0x14], edx
ja 0x47be3f
jb 0x47be38
cmp dword [eax + 0x10], ecx
jae 0x47be3f
add dword [eax + 8], 1
adc dword [eax + 0xc], edx
mov ecx, dword [esp + 0x18c]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.0048c97b
add esp, 0x180
ret