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

Disassembly:
mov ecx, dword [0x817cc4]
mov ecx, dword fs:[ecx]
mov ecx, dword [ecx]
lea eax, [esp - 0x3a8]
cmp eax, dword [ecx + 8]
jbe 0x5250d8
sub esp, 0x428
lea edi, [esp + 0x19c]
mov ecx, 0xa0
xor eax, eax
rep stosd dword es:[edi], eax
mov edx, dword [esp + 0x42c]
mov ebx, dword [edx + 0x3c]
mov ebp, dword [edx + 0x20]
mov esi, dword [edx + 0x30]
mov eax, dword [edx + 8]
mov dword [esp + 0x58], eax
mov ecx, dword [edx + 0x34]
mov edi, dword [edx + 0x24]
mov eax, dword [edx + 0x28]
mov dword [esp + 0x38], eax
mov eax, dword [edx + 0x18]
mov dword [esp + 0x48], eax
mov eax, dword [edx + 0x2c]
mov dword [esp + 0x3c], eax
mov eax, dword [edx + 0x38]
mov dword [esp + 0x28], eax
mov eax, dword [edx + 0x1c]
mov dword [esp + 0x4c], eax
mov eax, dword [edx]
mov dword [esp + 0x60], eax
mov eax, dword [edx + 0xc]
mov dword [esp + 0x5c], eax
mov eax, dword [edx + 0x10]
mov dword [esp + 0x50], eax
mov eax, dword [edx + 0x14]
mov edx, dword [edx + 4]
mov dword [esp + 0x194], eax
mov eax, dword [esp + 0x434]
mov dword [esp + 0xe0], eax
mov dword [esp + 0x18c], ecx
mov ecx, dword [esp + 0x430]
mov dword [esp + 0x424], ecx
mov dword [esp + 0x184], edx
mov edx, dword [esp + 0x438]
mov dword [esp + 0xdc], edx
mov edx, dword [esp + 0x184]
mov eax, dword [esp + 0x194]
mov ecx, dword [esp + 0x18c]
jmp 0x5248b7
mov ebx, dword [esp + 0xdc]
add ebx, 0xffffff80
mov dword [esp + 0xdc], ebx
neg ebx
sar ebx, 0x1f
and ebx, 0x80
mov ecx, dword [esp + 0x424]
add ecx, ebx
mov dword [esp + 0x424], ecx
mov ebx, dword [esp + 0xe0]
add ebx, 0xffffff80
mov dword [esp + 0xe0], ebx
mov ecx, dword [esp + 0xa0]
mov ebx, dword [esp + 0x60]
add ecx, ebx
mov dword [esp + 0x60], ecx
mov ebx, dword [esp + 0x64]
adc edx, ebx
mov dword [esp + 0xbc], edx
mov ebx, dword [esp + 0x98]
mov ecx, dword [esp + 0x58]
add ebx, ecx
mov ecx, dword [esp + 0x9c]
mov edx, dword [esp + 0x5c]
adc ecx, edx
mov dword [esp + 0xb8], ecx
mov edx, dword [esp + 0x90]
mov ecx, dword [esp + 0x50]
add edx, ecx
mov ecx, dword [esp + 0x54]
adc eax, ecx
mov dword [esp + 0xb4], eax
mov ecx, dword [esp + 0x48]
mov eax, dword [esp + 0x88]
add eax, ecx
mov dword [esp + 0x48], eax
mov ecx, dword [esp + 0x4c]
mov eax, dword [esp + 0x8c]
adc eax, ecx
mov dword [esp + 0xb0], eax
mov ecx, dword [esp + 0x40]
add ebp, ecx
mov ecx, dword [esp + 0x44]
adc edi, ecx
mov ecx, dword [esp + 0x78]
mov eax, dword [esp + 0x38]
add eax, ecx
mov dword [esp + 0x38], eax
mov ecx, dword [esp + 0x7c]
mov eax, dword [esp + 0x3c]
adc eax, ecx
mov dword [esp + 0xac], eax
mov ecx, dword [esp + 0x30]
add esi, ecx
mov ecx, dword [esp + 0x34]
mov eax, dword [esp + 0x74]
adc ecx, eax
mov dword [esp + 0xa8], ecx
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x68]
add eax, ecx
mov dword [esp + 0x28], eax
mov ecx, dword [esp + 0x6c]
mov eax, dword [esp + 0x2c]
adc ecx, eax
mov eax, dword [esp + 0x28]
mov dword [esp + 0x50], edx
mov dword [esp + 0x17c], eax
mov eax, dword [esp + 0xac]
mov dword [esp + 0x3c], eax
mov dword [esp + 0x174], ecx
mov ecx, dword [esp + 0xb0]
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x58], ebx
mov dword [esp + 0x16c], edx
mov edx, dword [esp + 0xb8]
mov dword [esp + 0x5c], edx
mov eax, dword [esp + 0xb4]
mov ecx, dword [esp + 0xa8]
mov ebx, dword [esp + 0x174]
mov edx, dword [esp + 0xbc]
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x34], ecx
mov ebx, dword [esp + 0xe0]
cmp ebx, 0x80
jl 0x5249ff
mov dword [esp + 0x44], edi
mov dword [esp + 0x40], ebp
mov dword [esp + 0x64], edx
mov dword [esp + 0x54], eax
mov dword [esp + 0x30], esi
mov dword [esp + 0x164], eax
xor eax, eax
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x164]
jmp 0x524ab1
mov edx, 0x10
jmp 0x524d1c
mov edx, dword [esp + 0x64]
mov dword [esp + 0x15c], eax
xor eax, eax
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x7c], eax
mov dword [esp + 0x154], ecx
mov ecx, dword [esp + 0x38]
mov dword [esp + 0x78], ecx
mov ecx, dword [esp + 0x154]
mov dword [esp + 0x14c], ecx
mov ecx, dword [esp + 0x60]
mov dword [esp + 0xa0], ecx
mov dword [esp + 0x144], edx
mov edx, dword [esp + 0x5c]
mov dword [esp + 0x9c], edx
mov dword [esp + 0x13c], ebx
mov ebx, dword [esp + 0x58]
mov dword [esp + 0x98], ebx
mov eax, dword [esp + 0x15c]
mov dword [esp + 0x134], eax
mov eax, dword [esp + 0x50]
mov dword [esp + 0x90], eax
mov dword [esp + 0x12c], ebp
mov ebp, dword [esp + 0x28]
mov dword [esp + 0x68], ebp
mov dword [esp + 0x124], esi
mov esi, dword [esp + 0x2c]
mov dword [esp + 0x6c], esi
mov dword [esp + 0x11c], edi
mov edi, dword [esp + 0x48]
mov dword [esp + 0x88], edi
mov dword [esp + 0x114], ebx
mov ebx, dword [esp + 0x4c]
mov dword [esp + 0x8c], ebx
mov ecx, dword [esp + 0x154]
mov edx, dword [esp + 0x144]
mov ebx, dword [esp + 0x13c]
mov eax, dword [esp + 0x15c]
mov ebp, dword [esp + 0x12c]
mov esi, dword [esp + 0x124]
mov edi, dword [esp + 0x11c]
jmp 0x524f70
mov ebx, dword [esp + 0x60]
mov ecx, dword [esp + 0x42c]
mov dword [ecx], ebx
mov dword [ecx + 4], edx
mov edx, dword [esp + 0x58]
mov dword [ecx + 8], edx
mov edx, dword [esp + 0x5c]
mov dword [ecx + 0xc], edx
mov edx, dword [esp + 0x50]
mov dword [ecx + 0x10], edx
mov dword [ecx + 0x14], eax
mov eax, dword [esp + 0x48]
mov dword [ecx + 0x18], eax
mov eax, dword [esp + 0x4c]
mov dword [ecx + 0x1c], eax
mov dword [ecx + 0x20], ebp
mov dword [ecx + 0x24], edi
mov eax, dword [esp + 0x38]
mov dword [ecx + 0x28], eax
mov eax, dword [esp + 0x3c]
mov dword [ecx + 0x2c], eax
mov dword [ecx + 0x30], esi
mov eax, dword [esp + 0x34]
mov dword [ecx + 0x34], eax
mov eax, dword [esp + 0x28]
mov dword [ecx + 0x38], eax
mov eax, dword [esp + 0x2c]
mov dword [ecx + 0x3c], eax
add esp, 0x428
ret
lea ecx, [esp + edx*8 + 0x19c]
lea ebp, [esp + edx*8 + 0x1a0]
mov esi, dword [esp + 0x424]
lea esi, [esi + edx*8 + 7]
movzx esi, byte [esi]
or edi, esi
mov dword [ecx], edi
mov dword [ebp], eax
lea eax, [edx + 1]
mov ecx, dword [esp + 0x424]
mov ecx, dword [esp + 0x34]
mov edx, dword [esp + 0x64]
mov ebp, dword [esp + 0x40]
mov esi, dword [esp + 0x30]
mov edi, dword [esp + 0x44]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x54]
mov edx, dword [esp + 0x24]
cmp edx, 0x10
jge 0x5248ff
shl edx, 3
cmp ebx, edx
jbe 0x5250ce
lea eax, [edx + 1]
mov ebp, dword [esp + 0x24]
mov esi, dword [esp + 0x424]
lea ecx, [esi + ebp*8]
cmp ebx, eax
jbe 0x5250c7
lea eax, [edx + 2]
cmp ebx, eax
jbe 0x5250c0
lea eax, [edx + 3]
cmp ebx, eax
jbe 0x5250b9
lea eax, [edx + 4]
cmp ebx, eax
jbe 0x5250b2
mov eax, dword [ecx]
bswap eax
lea ecx, [esi + ebp*8 + 4]
movzx ecx, byte [ecx]
mov dword [esp + 0xd8], ecx
shr ecx, 8
lea edi, [edx + 5]
or eax, ecx
cmp ebx, edi
jbe 0x5250a9
mov dword [esp + 0x18], edx
mov edi, dword [esp + 0xd8]
shl edi, 0x18
lea ecx, [esi + ebp*8 + 5]
movzx ecx, byte [ecx]
mov dword [esp + 0xd8], ecx
shr ecx, 0x10
mov ebp, dword [esp + 0xd8]
shl ebp, 0x10
add edx, 6
or ebp, edi
or ecx, eax
cmp ebx, edx
jbe 0x5250a0
mov edx, dword [esp + 0x24]
lea edi, [esi + edx*8 + 6]
movzx edi, byte [edi]
mov eax, edi
shl edi, 8
shr eax, 0x18
mov esi, dword [esp + 0x18]
add esi, 7
or edi, ebp
or eax, ecx
cmp ebx, esi
ja 0x524a68
jmp 0x525097
mov dword [esp + 0x20], edx
lea ebx, [esp + edx*8 + 0x18c]
mov eax, dword [ebx + 4]
mov dword [esp + 0x14], eax
mov ebx, dword [ebx]
mov dword [esp + 0x10], ebx
shr eax, 6
shr ebx, 6
mov ecx, dword [esp + 0x14]
shl ecx, 0x1a
or ecx, ebx
lea ebx, [esp + edx*8 + 0x124]
mov ebp, dword [ebx + 4]
mov dword [esp + 0xc], ebp
mov ebx, dword [ebx]
mov dword [esp + 8], ebx
shr ebp, 7
mov dword [esp + 0xd8], ebp
shr ebx, 7
mov esi, dword [esp + 0xc]
shl esi, 0x19
or esi, ebx
mov dword [esp + 0xd4], esi
lea ebx, [esp + edx*8 + 0x19c]
mov dword [esp + 0x420], ebx
lea edi, [esp + edx*8 + 0x1a0]
mov dword [esp + 0x41c], edi
lea edi, [esp + edx*8 + 0x164]
mov ebx, dword [edi]
mov dword [esp + 0xd0], ebx
mov edi, dword [edi + 4]
mov dword [esp + 0xcc], edi
lea edi, [esp + edx*8 + 0x11c]
mov ebx, dword [edi]
mov dword [esp + 0xc8], ebx
mov edi, dword [edi + 4]
mov dword [esp + 0xc4], edi
mov edi, dword [esp + 0x10]
shl edi, 0xd
mov ebx, dword [esp + 0x14]
shl ebx, 0xd
mov edx, dword [esp + 0x10]
shr edx, 0x13
or ebx, edx
mov edx, dword [esp + 0x14]
shr edx, 0x13
or edx, edi
mov edi, dword [esp + 0x14]
shl edi, 3
mov esi, dword [esp + 0x10]
shl esi, 3
mov ebp, dword [esp + 0x10]
shr ebp, 0x1d
or ebp, edi
xor ebp, edx
xor ebp, eax
mov eax, dword [esp + 0x14]
shr eax, 0x1d
or eax, esi
xor ebx, eax
xor ecx, ebx
mov eax, dword [esp + 8]
mov edx, eax
shl eax, 0x1f
mov ebx, edx
shr edx, 1
mov esi, dword [esp + 0xc]
mov edi, esi
shl esi, 0x1f
or esi, edx
mov edx, edi
shr edi, 1
or edi, eax
mov eax, ebx
shl ebx, 0x18
shr edx, 8
or edx, ebx
xor edi, edx
mov edx, dword [esp + 0xd8]
xor edi, edx
shr eax, 8
mov edx, dword [esp + 0xc]
shl edx, 0x18
or edx, eax
xor edx, esi
mov eax, dword [esp + 0xd4]
xor eax, edx
mov edx, dword [esp + 0x20]
inc edx
mov ebx, dword [esp + 0xd0]
add ecx, ebx
mov ebx, dword [esp + 0xcc]
adc ebp, ebx
add ecx, eax
adc ebp, edi
mov eax, dword [esp + 0xc8]
add eax, ecx
mov ecx, dword [esp + 0x420]
mov dword [ecx], eax
mov eax, dword [esp + 0xc4]
adc eax, ebp
mov ecx, dword [esp + 0x41c]
mov dword [ecx], eax
mov eax, dword [esp + 0x54]
mov ecx, dword [esp + 0x34]
mov ebx, dword [esp + 0xe0]
mov ebp, dword [esp + 0x40]
mov esi, dword [esp + 0x30]
mov edi, dword [esp + 0x44]
cmp edx, 0x50
jl 0x524b88
jmp 0x524909
mov dword [esp + 0x94], eax
mov dword [esp + 0xbc], ebx
mov dword [esp + 0xd8], edx
mov edi, dword [0x7ebfe8]
lea edi, [edi + esi*8]
mov ecx, dword [edi]
mov dword [esp + 0xd4], ecx
mov edi, dword [edi + 4]
mov dword [esp + 0xd0], edi
lea ebp, [esp + esi*8 + 0x19c]
mov ebx, dword [ebp]
mov dword [esp + 0xcc], ebx
mov ebp, dword [ebp + 4]
mov dword [esp + 0xc8], ebp
mov ebp, dword [esp + 0x9c]
mov ebx, dword [esp + 0xa4]
and ebp, ebx
mov edi, dword [esp + 0x98]
mov ecx, dword [esp + 0xa0]
and edi, ecx
and eax, ebx
xor eax, ebp
mov ebp, dword [esp + 0x90]
and ebp, ecx
xor ebp, edi
mov edi, dword [esp + 0x9c]
mov edx, dword [esp + 0x94]
and edi, edx
xor edi, eax
mov dword [esp + 0xc4], edi
mov eax, dword [esp + 0x98]
mov edx, dword [esp + 0x90]
and eax, edx
xor eax, ebp
mov ebp, ecx
shl ecx, 4
shl ebx, 4
shr ebp, 0x1c
or ebx, ebp
mov ebp, dword [esp + 0xa4]
shr ebp, 0x1c
or ebp, ecx
mov ecx, dword [esp + 0xa0]
shr ecx, 2
mov edx, dword [esp + 0xa4]
shl edx, 0x1e
or edx, ecx
xor edx, ebp
mov ecx, dword [esp + 0xa0]
mov ebp, ecx
shl ecx, 0x1e
mov edi, dword [esp + 0xa4]
shr edi, 2
or edi, ecx
xor ebx, edi
mov ecx, ebp
shr ebp, 7
mov edi, dword [esp + 0xa4]
shl edi, 0x19
or ebp, edi
xor edx, ebp
mov ebp, ecx
shl ecx, 0x19
mov edi, dword [esp + 0xa4]
shr edi, 7
or edi, ecx
xor ebx, edi
lea ecx, [esi + 1]
mov dword [esp + 0x1c], ecx
mov esi, dword [esp + 0xd4]
mov edi, dword [esp + 0xd8]
add esi, edi
mov edi, dword [esp + 0xd0]
mov ecx, dword [esp + 0xbc]
adc edi, ecx
mov ecx, dword [esp + 0xcc]
add ecx, esi
mov esi, dword [esp + 0xc8]
adc edi, esi
add ebx, eax
mov eax, dword [esp + 0xc4]
adc edx, eax
mov eax, dword [esp + 0x88]
add eax, ecx
mov esi, dword [esp + 0x8c]
adc esi, edi
add ecx, ebx
adc edx, edi
mov ebx, dword [esp + 0x94]
mov edi, dword [esp + 0x90]
mov ebx, dword [esp + 0xe0]
mov dword [esp + 0xa0], ecx
mov dword [esp + 0x10c], eax
mov eax, dword [esp + 0x98]
mov dword [esp + 0x90], eax
mov dword [esp + 0x104], ecx
mov ecx, dword [esp + 0x70]
mov dword [esp + 0x68], ecx
mov dword [esp + 0xfc], edx
mov edx, dword [esp + 0x74]
mov dword [esp + 0x6c], edx
mov dword [esp + 0x88], edi
mov dword [esp + 0xf4], ebp
mov ebp, dword [esp + 0x94]
mov dword [esp + 0x8c], ebp
mov ecx, dword [esp + 0x7c]
mov dword [esp + 0xec], ebp
mov ebp, dword [esp + 0xf4]
mov dword [esp + 0x98], ebp
mov eax, dword [esp + 0x9c]
mov ebp, dword [esp + 0x10c]
mov edi, esi
mov edx, dword [esp + 0xfc]
mov esi, dword [esp + 0x84]
mov dword [esp + 0x7c], esi
mov esi, dword [esp + 0x78]
mov esi, dword [esp + 0xa4]
mov dword [esp + 0x9c], esi
mov esi, dword [esp + 0x78]
mov dword [esp + 0xe4], ebp
mov ebp, dword [esp + 0x80]
mov dword [esp + 0x78], ebp
mov ebp, dword [esp + 0x10c]
mov dword [esp + 0x74], ecx
mov ebx, dword [esp + 0x1c]
cmp ebx, 0x50
jge 0x524744
mov dword [esp + 0xa4], edx
mov dword [esp + 0x70], esi
mov dword [esp + 0x80], ebp
mov dword [esp + 0x84], edi
mov edx, dword [esp + 0x7c]
and edi, edx
mov edx, dword [esp + 0x78]
and ebp, edx
mov edx, dword [esp + 0x84]
not edx
mov ebx, dword [esp + 0x80]
not ebx
and edx, ecx
xor edx, edi
mov dword [esp + 0xd8], edx
and ebx, esi
xor ebx, ebp
mov dword [esp + 0xd4], ebx
mov ebp, dword [0x7ebfec]
mov dword [esp + 0xc0], ebp
mov edi, dword [esp + 0x80]
shl edi, 0x12
mov esi, dword [esp + 0x80]
shr esi, 0xe
mov ebp, dword [esp + 0x84]
shl ebp, 0x12
or ebp, esi
mov esi, dword [esp + 0x84]
shr esi, 0xe
or esi, edi
mov edi, dword [esp + 0x80]
shl edi, 0xe
mov edx, dword [esp + 0x84]
shl edx, 0xe
mov ebx, dword [esp + 0x80]
shr ebx, 0x12
or edx, ebx
xor edx, ebp
mov ebx, dword [esp + 0x84]
mov ebp, ebx
shr ebx, 0x12
or ebx, edi
xor esi, ebx
mov ebx, dword [esp + 0x80]
mov edi, ebx
shr ebx, 9
shl ebp, 0x17
or ebx, ebp
xor ebx, esi
shl edi, 0x17
mov esi, dword [esp + 0x84]
shr esi, 9
or esi, edi
xor edx, esi
mov esi, dword [esp + 0x68]
add edx, esi
mov esi, dword [esp + 0x6c]
adc ebx, esi
mov esi, dword [esp + 0xd4]
add edx, esi
mov esi, dword [esp + 0xd8]
adc ebx, esi
mov esi, dword [esp + 0x1c]
mov edi, dword [esp + 0xc0]
cmp esi, edi
jb 0x524d2a
mov eax, esi
mov ecx, edi
call fcn.00466d70
mov eax, esi
mov ecx, ebx
call fcn.00466d70
mov eax, edx
mov ecx, ebx
call fcn.00466d70
mov eax, edi
mov ecx, ebx
call fcn.00466d70
mov ecx, ebx
call fcn.00466d70
mov ecx, ebx
call fcn.00466d70
mov ecx, ebx
call fcn.00466d70
mov ecx, ebx
call fcn.00466d70
mov eax, edx
mov ecx, ebx
call fcn.00466d70
nop
call fcn.00465910
jmp fcn.00524660