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

Disassembly:
mov ecx, dword [0x98d270]
mov ecx, dword fs:[ecx]
mov ecx, dword [ecx]
lea eax, [esp - 0x368]
cmp eax, dword [ecx + 8]
jbe 0x5089e1
sub esp, 0x3e8
lea edi, [esp + 0x15c]
mov ecx, 0xa0
xor eax, eax
rep stosd dword es:[edi], eax
mov edx, dword [esp + 0x3ec]
mov ebx, dword [edx]
mov ebp, dword [edx + 0x38]
mov esi, dword [edx + 0x3c]
mov eax, dword [edx + 0x10]
mov dword [esp + 0x50], eax
mov ecx, dword [edx + 0x30]
mov edi, dword [edx + 0x20]
mov eax, dword [edx + 0x34]
mov dword [esp + 0x34], eax
mov eax, dword [edx + 0x1c]
mov dword [esp + 0x4c], eax
mov eax, dword [edx + 0x28]
mov dword [esp + 0x38], eax
mov eax, dword [edx + 0x24]
mov dword [esp + 0x44], eax
mov eax, dword [edx + 0x2c]
mov dword [esp + 0x3c], eax
mov eax, dword [edx + 8]
mov dword [esp + 0x58], eax
mov eax, dword [edx + 0xc]
mov dword [esp + 0x5c], eax
mov eax, dword [edx + 0x18]
mov dword [esp + 0x48], eax
mov eax, dword [edx + 0x14]
mov edx, dword [edx + 4]
mov dword [esp + 0x154], eax
mov eax, dword [esp + 0x3f4]
mov dword [esp + 0xe0], eax
mov dword [esp + 0x14c], ecx
mov ecx, dword [esp + 0x3f0]
mov dword [esp + 0x3e4], ecx
mov dword [esp + 0x144], edx
mov edx, dword [esp + 0x3f8]
mov dword [esp + 0xdc], edx
mov edx, dword [esp + 0x144]
mov eax, dword [esp + 0x154]
mov ecx, dword [esp + 0x14c]
jmp 0x5081e4
mov esi, dword [esp + 0xdc]
add esi, 0xffffff80
mov dword [esp + 0xdc], esi
xchg esi, ebx
neg ebx
xchg esi, ebx
sar esi, 0x1f
and esi, 0x80
mov ebp, dword [esp + 0x3e4]
add ebp, esi
mov dword [esp + 0x3e4], ebp
mov esi, dword [esp + 0xe0]
add esi, 0xffffff80
mov ebp, dword [esp + 0x60]
add ebx, ebp
mov dword [esp + 0x60], ebx
mov ebp, dword [esp + 0xa4]
mov ebx, dword [esp + 0x64]
adc ebp, ebx
mov dword [esp + 0xbc], ebp
mov ebx, dword [esp + 0x98]
mov ebp, dword [esp + 0x58]
add ebx, ebp
mov dword [esp + 0x58], ebx
mov ebp, dword [esp + 0x5c]
mov ebx, dword [esp + 0x9c]
adc ebp, ebx
mov dword [esp + 0xb8], ebp
mov ebx, dword [esp + 0x50]
mov ebp, dword [esp + 0x90]
add ebx, ebp
mov ebp, dword [esp + 0x54]
adc eax, ebp
mov dword [esp + 0xb4], eax
mov ebp, dword [esp + 0x88]
mov eax, dword [esp + 0x48]
add eax, ebp
mov dword [esp + 0x48], eax
mov ebp, dword [esp + 0x4c]
adc edx, ebp
mov ebp, dword [esp + 0x40]
add edi, ebp
mov ebp, dword [esp + 0x84]
mov eax, dword [esp + 0x44]
adc eax, ebp
mov dword [esp + 0xb0], eax
mov ebp, dword [esp + 0x78]
mov eax, dword [esp + 0x38]
add eax, ebp
mov dword [esp + 0x38], eax
mov ebp, dword [esp + 0x7c]
mov eax, dword [esp + 0x3c]
adc eax, ebp
mov dword [esp + 0xac], eax
mov ebp, dword [esp + 0x30]
add ecx, ebp
mov dword [esp + 0x30], ecx
mov ebp, dword [esp + 0x74]
mov eax, dword [esp + 0x34]
adc eax, ebp
mov dword [esp + 0xa8], eax
mov ebp, dword [esp + 0x68]
mov eax, dword [esp + 0x28]
add ebp, eax
mov eax, dword [esp + 0x6c]
mov ecx, dword [esp + 0x2c]
adc eax, ecx
mov ecx, dword [esp + 0x30]
mov dword [esp + 0xe0], esi
mov esi, eax
mov dword [esp + 0x4c], edx
mov eax, dword [esp + 0xb0]
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0xa8]
mov dword [esp + 0x34], eax
mov edx, dword [esp + 0xbc]
mov eax, dword [esp + 0xac]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x50], ebx
mov eax, dword [esp + 0xb8]
mov dword [esp + 0x5c], eax
mov ebx, dword [esp + 0x60]
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x2c], esi
mov esi, dword [esp + 0xe0]
cmp esi, 0x80
jl 0x508333
mov dword [esp + 0x40], edi
mov dword [esp + 0x64], edx
mov dword [esp + 0x60], ebx
mov dword [esp + 0x28], ebp
mov dword [esp + 0x54], eax
mov dword [esp + 0x30], ecx
mov dword [esp + 0x13c], eax
xor eax, eax
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x13c]
jmp 0x5083e1
mov edx, 0x10
jmp 0x50864f
mov edx, dword [esp + 0x4c]
mov dword [esp + 0x134], eax
xor eax, eax
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x7c], eax
mov dword [esp + 0x12c], ecx
mov ecx, dword [esp + 0x38]
mov dword [esp + 0x78], ecx
mov dword [esp + 0x124], edx
mov edx, dword [esp + 0x34]
mov dword [esp + 0x74], edx
mov ecx, dword [esp + 0x12c]
mov dword [esp + 0x11c], ecx
mov ecx, dword [esp + 0x64]
mov dword [esp + 0xa4], ecx
mov dword [esp + 0x114], ebx
mov ebx, dword [esp + 0x5c]
mov dword [esp + 0x9c], ebx
mov dword [esp + 0x10c], ebp
mov ebp, dword [esp + 0x58]
mov dword [esp + 0x98], ebp
mov dword [esp + 0x104], esi
mov esi, dword [esp + 0x50]
mov dword [esp + 0x90], esi
mov eax, dword [esp + 0x134]
mov dword [esp + 0xfc], eax
mov eax, dword [esp + 0x44]
mov dword [esp + 0x84], eax
mov ebp, dword [esp + 0x10c]
mov dword [esp + 0xf4], ebp
mov ebp, dword [esp + 0x2c]
mov dword [esp + 0x6c], ebp
mov edx, dword [esp + 0x124]
mov dword [esp + 0xec], edx
mov edx, dword [esp + 0x48]
mov dword [esp + 0x88], edx
mov ecx, dword [esp + 0x12c]
mov ebx, dword [esp + 0x114]
mov esi, dword [esp + 0x104]
mov eax, dword [esp + 0x134]
mov ebp, dword [esp + 0x10c]
mov edx, dword [esp + 0x124]
jmp 0x50887c
mov esi, dword [esp + 0x3ec]
mov dword [esi], ebx
mov dword [esi + 4], edx
mov edx, dword [esp + 0x58]
mov dword [esi + 8], edx
mov edx, dword [esp + 0x5c]
mov dword [esi + 0xc], edx
mov edx, dword [esp + 0x50]
mov dword [esi + 0x10], edx
mov dword [esi + 0x14], eax
mov eax, dword [esp + 0x48]
mov dword [esi + 0x18], eax
mov eax, dword [esp + 0x4c]
mov dword [esi + 0x1c], eax
mov dword [esi + 0x20], edi
mov eax, dword [esp + 0x44]
mov dword [esi + 0x24], eax
mov eax, dword [esp + 0x38]
mov dword [esi + 0x28], eax
mov eax, dword [esp + 0x3c]
mov dword [esi + 0x2c], eax
mov dword [esi + 0x30], ecx
mov eax, dword [esp + 0x34]
mov dword [esi + 0x34], eax
mov dword [esi + 0x38], ebp
mov eax, dword [esp + 0x2c]
mov dword [esi + 0x3c], eax
add esp, 0x3e8
ret
lea ecx, [esp + edx*8 + 0x15c]
lea ebx, [esp + edx*8 + 0x160]
mov ebp, dword [esp + 0x3e4]
lea ebp, [ebp + edx*8 + 7]
movzx ebp, byte [ebp]
or edi, ebp
mov dword [ecx], edi
mov dword [ebx], eax
lea eax, [edx + 1]
mov ecx, dword [esp + 0x3e4]
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x64]
mov ebx, dword [esp + 0x60]
mov ebp, dword [esp + 0x28]
mov edi, dword [esp + 0x40]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x54]
mov edx, dword [esp + 0x24]
cmp edx, 0x10
jge 0x50822c
shl edx, 3
cmp esi, edx
jbe 0x5089d7
lea eax, [edx + 1]
mov ebx, dword [esp + 0x24]
mov ebp, dword [esp + 0x3e4]
lea ecx, [ebp + ebx*8]
cmp esi, eax
jbe 0x5089d0
lea eax, [edx + 2]
cmp esi, eax
jbe 0x5089c9
lea eax, [edx + 3]
cmp esi, eax
jbe 0x5089c2
lea eax, [edx + 4]
cmp esi, eax
jbe 0x5089bb
mov eax, dword [ecx]
bswap eax
lea ecx, [ebp + ebx*8 + 4]
movzx ecx, byte [ecx]
mov dword [esp + 0xd8], ecx
shr ecx, 8
lea edi, [edx + 5]
or eax, ecx
cmp esi, edi
jbe 0x5089b2
mov dword [esp + 0x18], edx
mov edi, dword [esp + 0xd8]
shl edi, 0x18
lea ecx, [ebp + ebx*8 + 5]
movzx ecx, byte [ecx]
mov dword [esp + 0xd8], ecx
shr ecx, 0x10
mov ebx, dword [esp + 0xd8]
shl ebx, 0x10
add edx, 6
or ebx, edi
or ecx, eax
cmp esi, edx
jbe 0x5089a9
mov edx, dword [esp + 0x24]
lea edi, [ebp + edx*8 + 6]
movzx edi, byte [edi]
mov eax, edi
shl edi, 8
shr eax, 0x18
mov ebp, dword [esp + 0x18]
add ebp, 7
or edi, ebx
or eax, ecx
cmp esi, ebp
ja 0x508398
jmp 0x5089a0
mov dword [esp + 0x20], edx
lea esi, [esp + edx*8 + 0x14c]
mov eax, dword [esi + 4]
mov dword [esp + 0x14], eax
mov esi, dword [esi]
mov dword [esp + 0x10], esi
shr eax, 6
shr esi, 6
mov ecx, dword [esp + 0x14]
shl ecx, 0x1a
or ecx, esi
lea esi, [esp + edx*8 + 0xe4]
mov ebx, dword [esi + 4]
mov dword [esp + 0xc], ebx
mov esi, dword [esi]
mov dword [esp + 8], esi
shr ebx, 7
mov dword [esp + 0xd8], ebx
shr esi, 7
mov ebp, dword [esp + 0xc]
shl ebp, 0x19
or ebp, esi
mov dword [esp + 0xd4], ebp
lea esi, [esp + edx*8 + 0x15c]
mov dword [esp + 0x3e0], esi
lea edi, [esp + edx*8 + 0x160]
mov dword [esp + 0x3dc], edi
lea edi, [esp + edx*8 + 0x124]
mov esi, dword [edi]
mov dword [esp + 0xd0], esi
mov edi, dword [edi + 4]
mov dword [esp + 0xcc], edi
lea edi, [esp + edx*8 + 0xdc]
mov esi, dword [edi]
mov dword [esp + 0xc8], esi
mov edi, dword [edi + 4]
mov dword [esp + 0xc4], edi
mov edi, dword [esp + 0x10]
shl edi, 0xd
mov esi, dword [esp + 0x14]
shl esi, 0xd
mov edx, dword [esp + 0x10]
shr edx, 0x13
or esi, edx
mov edx, dword [esp + 0x14]
shr edx, 0x13
or edx, edi
mov edi, dword [esp + 0x14]
shl edi, 3
mov ebp, dword [esp + 0x10]
shl ebp, 3
mov ebx, dword [esp + 0x10]
shr ebx, 0x1d
or ebx, edi
xor ebx, edx
xor ebx, eax
mov eax, dword [esp + 0x14]
shr eax, 0x1d
or eax, ebp
xor esi, eax
xor ecx, esi
mov eax, dword [esp + 8]
mov edx, eax
shl eax, 0x1f
mov ebp, 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, ebp
shl ebp, 0x18
shr edx, 8
or edx, ebp
xor edx, edi
mov ebp, dword [esp + 0xd8]
xor edx, ebp
shr eax, 8
mov ebp, dword [esp + 0xc]
shl ebp, 0x18
or ebp, eax
xor ebp, esi
mov eax, dword [esp + 0xd4]
xor eax, ebp
mov ebp, dword [esp + 0x20]
inc ebp
mov esi, dword [esp + 0xd0]
add ecx, esi
mov esi, dword [esp + 0xcc]
adc ebx, esi
add ecx, eax
adc ebx, edx
mov eax, dword [esp + 0xc8]
add eax, ecx
mov ecx, dword [esp + 0x3e0]
mov dword [ecx], eax
mov eax, dword [esp + 0xc4]
adc eax, ebx
mov ecx, dword [esp + 0x3dc]
mov dword [ecx], eax
mov eax, dword [esp + 0x54]
mov ecx, dword [esp + 0x30]
mov ebx, dword [esp + 0x60]
mov esi, dword [esp + 0xe0]
mov edi, dword [esp + 0x40]
mov edx, ebp
mov ebp, dword [esp + 0x28]
cmp edx, 0x50
jl 0x5084b9
jmp 0x508236
mov dword [esp + 0x94], eax
mov dword [esp + 0x70], ecx
mov dword [esp + 0xbc], ebp
mov dword [esp + 0xd8], ebx
mov edi, dword [0x95e840]
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 edx, [esp + esi*8 + 0x15c]
mov ebp, dword [edx]
mov dword [esp + 0xcc], ebp
mov edx, dword [edx + 4]
mov dword [esp + 0xc8], edx
mov edx, dword [esp + 0xa4]
mov ebp, dword [esp + 0x9c]
and edx, ebp
mov edi, dword [esp + 0x98]
mov ecx, dword [esp + 0xa0]
and edi, ecx
mov ebx, dword [esp + 0xa4]
and ebx, eax
xor edx, ebx
mov ebx, dword [esp + 0x90]
and ecx, ebx
xor ecx, edi
and ebp, eax
xor edx, ebp
mov dword [esp + 0xc4], edx
mov ebp, dword [esp + 0x98]
and ebp, ebx
xor ebp, ecx
mov ecx, dword [esp + 0xa0]
shl ecx, 4
mov eax, dword [esp + 0xa4]
shl eax, 4
mov ebx, dword [esp + 0xa0]
shr ebx, 0x1c
or ebx, eax
mov eax, dword [esp + 0xa4]
shr eax, 0x1c
or eax, ecx
mov ecx, dword [esp + 0xa0]
shr ecx, 2
mov edi, dword [esp + 0xa4]
shl edi, 0x1e
or ecx, edi
xor eax, ecx
mov ecx, dword [esp + 0xa0]
mov edi, ecx
shl ecx, 0x1e
mov edx, dword [esp + 0xa4]
shr edx, 2
or edx, ecx
xor ebx, edx
mov edx, edi
shr edx, 7
mov ecx, dword [esp + 0xa4]
shl ecx, 0x19
or edx, ecx
xor edx, eax
shl edi, 0x19
mov ecx, dword [esp + 0xa4]
shr ecx, 7
or ecx, edi
xor ebx, ecx
lea ecx, [esi + 1]
mov edi, dword [esp + 0xd4]
mov esi, dword [esp + 0xd8]
add edi, esi
mov esi, dword [esp + 0xd0]
mov eax, dword [esp + 0xbc]
adc esi, eax
mov eax, dword [esp + 0xcc]
add edi, eax
mov eax, dword [esp + 0xc8]
adc eax, esi
add ebx, ebp
mov ebp, dword [esp + 0xc4]
adc edx, ebp
mov ebp, dword [esp + 0x88]
add ebp, edi
mov esi, dword [esp + 0x8c]
adc esi, eax
add ebx, edi
adc edx, eax
mov eax, dword [esp + 0x90]
mov edi, dword [esp + 0x94]
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x78]
mov dword [esp + 0xe4], eax
mov eax, dword [esp + 0x98]
mov dword [esp + 0x90], eax
mov eax, dword [esp + 0x9c]
mov edi, ebp
mov ebp, dword [esp + 0x70]
mov ebp, dword [esp + 0x74]
mov dword [esp + 0x6c], ebp
mov ebp, dword [esp + 0xe4]
mov dword [esp + 0x88], ebp
mov ebp, dword [esp + 0x80]
mov dword [esp + 0x78], ebp
mov ebp, dword [esp + 0x7c]
mov dword [esp + 0x74], ebp
mov ebp, dword [esp + 0xa4]
mov dword [esp + 0x9c], ebp
mov ebp, dword [esp + 0xa0]
mov dword [esp + 0x98], ebp
mov ebp, dword [esp + 0x70]
mov ebp, dword [esp + 0x84]
mov dword [esp + 0x7c], ebp
mov dword [esp + 0xa4], edx
mov dword [esp + 0x84], esi
mov edx, dword [esp + 0x94]
mov esi, dword [esp + 0xe0]
mov ebp, dword [esp + 0x70]
mov dword [esp + 0x68], ebp
mov esi, dword [esp + 0x1c]
cmp esi, 0x50
jge 0x508074
mov dword [esp + 0x80], edi
mov dword [esp + 0x8c], edx
mov dword [esp + 0xa0], ebx
mov edx, dword [esp + 0x7c]
mov ebx, dword [esp + 0x84]
and edx, ebx
mov esi, dword [esp + 0x78]
and esi, edi
not ebx
xchg edi, ebx
not ebx
xchg edi, ebx
mov ebp, dword [esp + 0x74]
and ebx, ebp
xor ebx, edx
mov dword [esp + 0xd8], ebx
and edi, ecx
xor edi, esi
mov dword [esp + 0xd4], edi
mov edx, dword [0x95e844]
mov dword [esp + 0xc0], edx
mov esi, dword [esp + 0x80]
shl esi, 0x12
mov ebp, dword [esp + 0x80]
shr ebp, 0xe
mov edx, dword [esp + 0x84]
shl edx, 0x12
or edx, ebp
mov ebp, dword [esp + 0x84]
shr ebp, 0xe
or ebp, esi
mov esi, dword [esp + 0x80]
shl esi, 0xe
mov ebx, dword [esp + 0x84]
shl ebx, 0xe
mov edi, dword [esp + 0x80]
shr edi, 0x12
or ebx, edi
xor ebx, edx
mov edx, dword [esp + 0x84]
mov edi, edx
shr edx, 0x12
or edx, esi
xor edx, ebp
mov ebp, dword [esp + 0x80]
mov esi, ebp
shr ebp, 9
shl edi, 0x17
or ebp, edi
xor ebp, edx
shl esi, 0x17
mov edi, dword [esp + 0x84]
shr edi, 9
or edi, esi
xor ebx, edi
mov esi, dword [esp + 0x68]
add ebx, esi
mov esi, dword [esp + 0x6c]
adc ebp, esi
mov esi, dword [esp + 0xd4]
add ebx, esi
mov esi, dword [esp + 0xd8]
adc ebp, esi
mov esi, dword [esp + 0x1c]
mov edi, dword [esp + 0xc0]
cmp esi, edi
jb 0x50865d
mov eax, esi
mov ecx, edi
call fcn.00468a00
mov eax, ebp
mov ecx, esi
call fcn.00468a00
mov eax, edx
mov ecx, esi
call fcn.00468a00
mov eax, edi
mov ecx, esi
call fcn.00468a00
mov ecx, esi
call fcn.00468a00
mov ecx, esi
call fcn.00468a00
mov ecx, esi
call fcn.00468a00
mov ecx, esi
call fcn.00468a00
mov eax, edx
mov ecx, esi
call fcn.00468a00
nop
call fcn.00467590
jmp fcn.00507f90