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

Disassembly:
sub esp, 0x94
push ebx
push ebp
push esi
push edi
mov ecx, dword [eax]
mov edx, dword [eax + 4]
bswap edx
mov dword [eax], edx
mov edx, dword [eax + 8]
bswap edx
bswap ecx
mov esi, dword [eax + 0xc]
bswap esi
mov dword [eax + 8], esi
mov esi, dword [eax + 0x14]
mov dword [eax + 0xc], edx
mov edx, dword [eax + 0x10]
bswap edx
bswap esi
mov dword [eax + 0x10], esi
mov esi, dword [eax + 0x1c]
mov dword [eax + 0x14], edx
mov edx, dword [eax + 0x18]
bswap edx
bswap esi
mov dword [eax + 4], ecx
lea ecx, [eax + 8]
mov dword [eax + 0x18], esi
mov esi, dword [eax + 0x24]
mov dword [eax + 0x1c], edx
mov edx, dword [eax + 0x20]
bswap edx
bswap esi
mov dword [eax + 0x20], esi
mov esi, dword [eax + 0x2c]
mov dword [eax + 0x24], edx
mov edx, dword [eax + 0x28]
bswap edx
bswap esi
mov dword [eax + 0x28], esi
mov esi, dword [eax + 0x34]
mov dword [eax + 0x2c], edx
mov edx, dword [eax + 0x30]
bswap edx
bswap esi
mov dword [eax + 0x30], esi
mov esi, dword [eax + 0x3c]
mov dword [eax + 0x34], edx
mov edx, dword [eax + 0x38]
bswap edx
bswap esi
mov dword [eax + 0x38], esi
mov esi, dword [eax + 0x44]
mov dword [eax + 0x3c], edx
mov edx, dword [eax + 0x40]
bswap edx
bswap esi
mov dword [eax + 0x40], esi
mov esi, dword [eax + 0x4c]
mov dword [eax + 0x44], edx
mov edx, dword [eax + 0x48]
bswap edx
bswap esi
mov dword [eax + 0x48], esi
mov esi, dword [eax + 0x54]
mov dword [eax + 0x4c], edx
mov edx, dword [eax + 0x50]
bswap edx
bswap esi
mov dword [eax + 0x50], esi
mov esi, dword [eax + 0x5c]
mov dword [eax + 0x54], edx
mov edx, dword [eax + 0x58]
bswap edx
bswap esi
mov dword [eax + 0x58], esi
mov esi, dword [eax + 0x64]
mov dword [eax + 0x5c], edx
mov edx, dword [eax + 0x60]
bswap edx
bswap esi
mov dword [eax + 0x60], esi
mov esi, dword [eax + 0x6c]
mov dword [eax + 0x64], edx
mov edx, dword [eax + 0x68]
bswap edx
bswap esi
mov dword [eax + 0x68], esi
mov esi, dword [eax + 0x74]
mov dword [eax + 0x6c], edx
mov edx, dword [eax + 0x70]
bswap edx
bswap esi
mov dword [eax + 0x70], esi
mov esi, dword [eax + 0x7c]
mov dword [eax + 0x74], edx
mov edx, dword [eax + 0x78]
bswap edx
bswap esi
mov dword [eax + 0x78], esi
mov dword [eax + 0x7c], edx
mov dword [esp + 0x60], 0x40
mov esi, dword [ecx + 0x6c]
mov edi, dword [ecx + 0x68]
mov ebx, edi
shr ebx, 0x13
mov edx, esi
shl edx, 0xd
or edx, ebx
mov ebp, edi
mov ebx, esi
shl ebx, 0x1a
shr ebp, 6
or ebx, ebp
xor edx, ebx
add edi, edi
add edi, edi
mov ebx, esi
add edi, edi
shr ebx, 0x1d
or ebx, edi
mov edi, dword [ecx + 0x40]
xor edx, ebx
add edx, edi
mov dword [esp + 0x10], 0
cmp edx, edi
jae 0x4a5deb
mov dword [esp + 0x10], 1
mov edi, dword [ecx + 4]
mov ebp, dword [ecx]
shr ebp, 8
mov ebx, edi
shl ebx, 0x18
or ebx, ebp
mov ebp, dword [ecx]
mov dword [esp + 0x48], ebx
shr ebp, 7
mov ebx, edi
shl ebx, 0x19
or ebx, ebp
xor dword [esp + 0x48], ebx
mov ebx, dword [ecx]
shr ebx, 1
mov ebp, edi
shl ebp, 0x1f
or ebp, ebx
mov ebx, dword [esp + 0x48]
xor ebx, ebp
add edx, ebx
cmp edx, ebx
jae 0x4a5e29
inc dword [esp + 0x10]
mov ebx, dword [ecx - 8]
add edx, ebx
cmp edx, ebx
jae 0x4a5e36
inc dword [esp + 0x10]
mov dword [ecx + 0x78], edx
mov edx, dword [ecx]
mov ebx, edi
shr ebx, 1
mov ebp, edx
shl ebp, 0x1f
or ebx, ebp
mov ebp, edi
shr ebp, 8
shl edx, 0x18
or ebp, edx
mov edx, dword [ecx + 0x68]
xor ebx, ebp
shr edi, 7
xor ebx, edi
mov ebp, edx
shr ebp, 0x1d
lea edi, [esi*8]
or edi, ebp
mov ebp, esi
shr ebp, 0x13
shl edx, 0xd
or ebp, edx
xor edi, ebp
shr esi, 6
xor edi, esi
add ebx, edi
add ebx, dword [ecx + 0x44]
add ecx, 8
add ebx, dword [ecx - 0xc]
add ebx, dword [esp + 0x10]
sub dword [esp + 0x60], 1
mov dword [ecx + 0x74], ebx
jne 0x4a5da3
mov edi, dword [eax + 0x2bc]
mov dword [esp + 0x58], edi
lea edi, [eax + 8]
mov dword [esp + 0x14], edi
mov edi, 0x5808d8
sub edi, eax
mov dword [esp + 0xa0], edi
mov ecx, dword [eax + 0x284]
mov edi, 0x5808dc
sub edi, eax
mov dword [esp + 0x74], edi
mov edi, 0x5808e0
sub edi, eax
mov dword [esp + 0x6c], edi
mov edi, 0x5808e4
sub edi, eax
mov dword [esp + 0x70], edi
mov edi, 0x5808e8
sub edi, eax
mov dword [esp + 0x78], edi
mov edi, 0x5808ec
sub edi, eax
mov dword [esp + 0x80], edi
mov dword [esp + 0x50], ecx
mov ecx, dword [eax + 0x288]
mov edi, 0x5808f0
sub edi, eax
mov dword [esp + 0x88], edi
mov dword [esp + 0x28], ecx
mov ecx, dword [eax + 0x28c]
mov ebx, dword [eax + 0x2a0]
mov esi, dword [eax + 0x2a4]
mov edi, 0x5808f4
sub edi, eax
mov dword [esp + 0x90], edi
mov dword [esp + 0x2c], ecx
mov ecx, dword [eax + 0x290]
mov edx, dword [eax + 0x280]
mov dword [esp + 0x20], ecx
mov ecx, dword [eax + 0x294]
mov edi, 0x5808f8
sub edi, eax
mov dword [esp + 0x98], edi
mov dword [esp + 0x24], ecx
mov ecx, dword [eax + 0x298]
mov edi, 0x5808fc
sub edi, eax
mov dword [esp + 0x68], edi
mov dword [esp + 0x18], ecx
mov ecx, dword [eax + 0x29c]
mov edi, 0x580900
sub edi, eax
mov dword [esp + 0x8c], edi
mov dword [esp + 0x1c], ecx
mov ecx, dword [eax + 0x2a8]
mov edi, 0x580904
sub edi, eax
mov dword [esp + 0x30], ecx
mov ecx, dword [eax + 0x2ac]
mov dword [esp + 0x7c], edi
mov dword [esp + 0x34], ecx
mov ecx, dword [eax + 0x2b0]
mov edi, 0x580908
sub edi, eax
mov dword [esp + 0x9c], edi
mov dword [esp + 0x40], ecx
mov ecx, dword [eax + 0x2b4]
mov edi, 0x58090c
sub edi, eax
mov dword [esp + 0x44], ecx
mov ecx, dword [eax + 0x2b8]
mov dword [esp + 0x38], ebx
mov dword [esp + 0x3c], esi
mov dword [esp + 0x48], 0x5808dc
mov dword [esp + 0x84], edi
jmp 0x4a5ff9
mov ebx, dword [esp + 0x38]
mov esi, dword [esp + 0x3c]
mov ebp, dword [esp + 0x30]
and ebp, ebx
mov edi, ebx
not edi
and edi, dword [esp + 0x40]
xor edi, ebp
mov dword [esp + 0x5c], edi
mov ebp, ebx
shl ebp, 0x17
shr ebx, 0x12
mov edi, esi
shr edi, 9
or edi, ebp
mov ebp, esi
shl ebp, 0xe
or ebp, ebx
xor edi, ebp
mov ebp, dword [esp + 0x38]
shr ebp, 0xe
mov ebx, esi
shl ebx, 0x12
or ebx, ebp
mov ebp, dword [esp + 0x48]
mov ebp, dword [ebp - 4]
xor edi, ebx
mov ebx, dword [esp + 0x5c]
add edi, ebx
cmp edi, ebx
sbb ebx, ebx
neg ebx
add edi, ebp
mov dword [esp + 0x10], ebx
cmp edi, ebp
jae 0x4a6057
inc ebx
mov dword [esp + 0x10], ebx
mov ebp, dword [esp + 0x14]
mov ebp, dword [ebp - 8]
add edi, ebp
cmp edi, ebp
jae 0x4a6069
inc ebx
mov dword [esp + 0x10], ebx
add ecx, edi
cmp ecx, edi
jae 0x4a6074
inc ebx
mov dword [esp + 0x10], ebx
mov edi, dword [esp + 0x38]
mov ebp, edi
shl ebp, 0x12
shl edi, 0xe
mov ebx, esi
shr ebx, 0xe
or ebx, ebp
mov ebp, esi
shr ebp, 0x12
or ebp, edi
xor ebx, ebp
mov ebp, dword [esp + 0x38]
mov edi, esi
shl edi, 0x17
shr ebp, 9
or edi, ebp
mov ebp, dword [esp + 0x34]
xor ebx, edi
and ebp, esi
mov edi, esi
mov esi, dword [esp + 0x14]
not edi
and edi, dword [esp + 0x44]
xor edi, ebp
add ebx, edi
add ebx, dword [esi - 4]
mov esi, dword [esp + 0x48]
add ebx, dword [esi]
mov edi, dword [esp + 0x18]
add ebx, dword [esp + 0x10]
mov esi, dword [esp + 0x58]
add esi, ebx
mov ebx, dword [esp + 0x50]
add edi, ecx
cmp edi, ecx
mov dword [esp + 0x18], edi
sbb edi, edi
neg edi
add edi, esi
add dword [esp + 0x1c], edi
mov dword [esp + 0x58], esi
mov esi, dword [esp + 0x28]
mov edi, esi
xor edi, edx
and edi, dword [esp + 0x20]
and esi, edx
xor edi, esi
mov esi, ebx
shl esi, 4
mov ebp, edx
shr ebp, 0x1c
or esi, ebp
shr ebx, 2
mov ebp, edx
shl ebp, 0x1e
or ebx, ebp
xor esi, ebx
mov ebx, dword [esp + 0x50]
shr ebx, 7
mov ebp, edx
shl ebp, 0x19
or ebx, ebp
xor esi, ebx
add esi, edi
cmp esi, edi
sbb edi, edi
neg edi
add ecx, esi
mov dword [esp + 0x10], edi
cmp ecx, esi
jae 0x4a6136
inc edi
mov dword [esp + 0x10], edi
mov esi, dword [esp + 0x50]
mov ebx, esi
shl ebx, 0x19
mov edi, edx
shr edi, 7
or ebx, edi
mov edi, esi
shl edi, 0x1e
mov ebp, edx
shr ebp, 2
or edi, ebp
xor ebx, edi
mov edi, esi
shr edi, 0x1c
mov ebp, edx
shl ebp, 4
or edi, ebp
xor ebx, edi
add ebx, dword [esp + 0x10]
mov edi, dword [esp + 0x2c]
mov ebp, edi
xor ebp, esi
and ebp, dword [esp + 0x24]
and edi, esi
xor ebp, edi
add ebp, ebx
mov ebx, dword [esp + 0x18]
add dword [esp + 0x58], ebp
mov edi, ebx
mov esi, ebx
and esi, dword [esp + 0x38]
not edi
and edi, dword [esp + 0x30]
mov ebp, ebx
xor edi, esi
mov esi, dword [esp + 0x1c]
shl ebp, 0x17
shr esi, 9
or esi, ebp
mov ebp, dword [esp + 0x1c]
shr ebx, 0x12
shl ebp, 0xe
or ebp, ebx
mov ebx, dword [esp + 0x1c]
xor esi, ebp
mov ebp, dword [esp + 0x18]
shl ebx, 0x12
shr ebp, 0xe
or ebx, ebp
mov ebp, dword [esp + 0x14]
xor esi, ebx
add esi, edi
cmp esi, edi
mov edi, dword [esp + 0xa0]
mov edi, dword [edi + ebp]
sbb ebx, ebx
neg ebx
add esi, edi
mov dword [esp + 0x10], ebx
cmp esi, edi
jae 0x4a61e3
inc ebx
mov dword [esp + 0x10], ebx
mov ebp, dword [ebp]
add esi, ebp
cmp esi, ebp
jae 0x4a61f1
inc ebx
mov dword [esp + 0x10], ebx
mov edi, dword [esp + 0x40]
add edi, esi
mov dword [esp + 0x40], edi
cmp edi, esi
jae 0x4a6204
inc ebx
mov dword [esp + 0x10], ebx
mov esi, dword [esp + 0x1c]
mov edi, dword [esp + 0x18]
mov ebp, edi
mov ebx, esi
shr ebx, 0xe
shl ebp, 0x12
or ebx, ebp
shl edi, 0xe
mov ebp, esi
shr ebp, 0x12
or ebp, edi
xor ebx, ebp
mov ebp, dword [esp + 0x18]
mov edi, esi
shl edi, 0x17
shr ebp, 9
or edi, ebp
xor ebx, edi
mov edi, esi
and esi, dword [esp + 0x3c]
not edi
and edi, dword [esp + 0x34]
mov ebp, ecx
xor edi, esi
mov esi, dword [esp + 0x14]
add ebx, edi
mov edi, dword [esp + 0x74]
add ebx, dword [edi + esi]
mov edi, dword [esp + 0x44]
add ebx, dword [esi + 4]
mov esi, dword [esp + 0x40]
add ebx, dword [esp + 0x10]
add edi, ebx
mov ebx, dword [esp + 0x20]
add ebx, esi
cmp ebx, esi
sbb esi, esi
neg esi
add esi, edi
add dword [esp + 0x24], esi
mov dword [esp + 0x44], edi
mov dword [esp + 0x20], ebx
mov ebx, dword [esp + 0x58]
mov edi, edx
xor edi, ecx
and edi, dword [esp + 0x28]
mov esi, edx
and esi, ecx
xor edi, esi
mov esi, ebx
shr ebp, 0x1c
shl esi, 4
or esi, ebp
shr ebx, 2
mov ebp, ecx
shl ebp, 0x1e
or ebx, ebp
xor esi, ebx
mov ebx, dword [esp + 0x58]
shr ebx, 7
mov ebp, ecx
shl ebp, 0x19
or ebx, ebp
xor esi, ebx
mov ebx, dword [esp + 0x40]
add esi, edi
cmp esi, edi
sbb edi, edi
add ebx, esi
neg edi
mov dword [esp + 0x10], edi
mov dword [esp + 0x40], ebx
cmp ebx, esi
jae 0x4a62d3
inc edi
mov dword [esp + 0x10], edi
mov esi, dword [esp + 0x58]
mov ebx, esi
shl ebx, 0x19
mov edi, ecx
shr edi, 7
or ebx, edi
mov edi, esi
shl edi, 0x1e
mov ebp, ecx
shr ebp, 2
or edi, ebp
xor ebx, edi
mov edi, esi
shr edi, 0x1c
mov ebp, ecx
shl ebp, 4
or edi, ebp
xor ebx, edi
add ebx, dword [esp + 0x10]
mov edi, dword [esp + 0x50]
mov ebp, edi
xor ebp, esi
and ebp, dword [esp + 0x2c]
and edi, esi
xor ebp, edi
add ebp, ebx
mov ebx, dword [esp + 0x20]
add dword [esp + 0x44], ebp
mov edi, ebx
mov esi, ebx
and esi, dword [esp + 0x18]
not edi
and edi, dword [esp + 0x38]
mov ebp, ebx
xor edi, esi
mov esi, dword [esp + 0x24]
shl ebp, 0x17
shr esi, 9
or esi, ebp
mov ebp, dword [esp + 0x24]
shr ebx, 0x12
shl ebp, 0xe
or ebp, ebx
mov ebx, dword [esp + 0x24]
xor esi, ebp
mov ebp, dword [esp + 0x20]
shl ebx, 0x12
shr ebp, 0xe
or ebx, ebp
mov ebp, dword [esp + 0x14]
xor esi, ebx
add esi, edi
cmp esi, edi
mov edi, dword [esp + 0x6c]
mov edi, dword [edi + ebp]
sbb ebx, ebx
neg ebx
add esi, edi
mov dword [esp + 0x10], ebx
cmp esi, edi
jae 0x4a637d
inc ebx
mov dword [esp + 0x10], ebx
mov ebp, dword [ebp + 8]
add esi, ebp
cmp esi, ebp
jae 0x4a638b
inc ebx
mov dword [esp + 0x10], ebx
mov edi, dword [esp + 0x30]
add edi, esi
mov dword [esp + 0x30], edi
cmp edi, esi
jae 0x4a639e
inc ebx
mov dword [esp + 0x10], ebx
mov esi, dword [esp + 0x24]
mov edi, dword [esp + 0x20]
mov ebp, edi
mov ebx, esi
shr ebx, 0xe
shl ebp, 0x12
or ebx, ebp
shl edi, 0xe
mov ebp, esi
shr ebp, 0x12
or ebp, edi
xor ebx, ebp
mov ebp, dword [esp + 0x20]
mov edi, esi
shl edi, 0x17
shr ebp, 9
or edi, ebp
xor ebx, edi
mov edi, esi
and esi, dword [esp + 0x1c]
not edi
and edi, dword [esp + 0x3c]
xor edi, esi
mov esi, dword [esp + 0x14]
add ebx, edi
mov edi, dword [esp + 0x70]
add ebx, dword [edi + esi]
mov edi, dword [esp + 0x34]
add ebx, dword [esi + 0xc]
mov esi, dword [esp + 0x30]
add ebx, dword [esp + 0x10]
add edi, ebx
mov ebx, dword [esp + 0x28]
add ebx, esi
cmp ebx, esi
sbb esi, esi
neg esi
add esi, edi
add dword [esp + 0x2c], esi
mov dword [esp + 0x28], ebx
mov ebx, dword [esp + 0x40]
mov dword [esp + 0x34], edi
mov edi, ecx
xor edi, ebx
and edi, edx
mov ebp, ebx
mov esi, ecx
and esi, ebx
xor edi, esi
mov esi, dword [esp + 0x44]
shr ebp, 0x1c
shl esi, 4
or esi, ebp
mov ebp, dword [esp + 0x44]
shl ebx, 0x1e
shr ebp, 2
or ebp, ebx
mov ebx, dword [esp + 0x44]
xor esi, ebp
mov ebp, dword [esp + 0x40]
shr ebx, 7
shl ebp, 0x19
or ebx, ebp
xor esi, ebx
mov ebx, dword [esp + 0x30]
add esi, edi
cmp esi, edi
sbb edi, edi
add ebx, esi
neg edi
mov dword [esp + 0x10], edi
mov dword [esp + 0x30], ebx
cmp ebx, esi
jae 0x4a6471
inc edi
mov dword [esp + 0x10], edi
mov esi, dword [esp + 0x44]
mov edi, dword [esp + 0x40]
mov ebp, edi
shr ebp, 7
mov ebx, esi
shl ebx, 0x19
or ebx, ebp
shr edi, 2
mov ebp, esi
shl ebp, 0x1e
or ebp, edi
xor ebx, ebp
mov ebp, dword [esp + 0x40]
shl ebp, 4
mov edi, esi
shr edi, 0x1c
or edi, ebp
xor ebx, edi
add ebx, dword [esp + 0x10]
mov edi, dword [esp + 0x58]
mov ebp, edi
xor ebp, esi
and ebp, dword [esp + 0x50]
and edi, esi
mov esi, dword [esp + 0x20]
xor ebp, edi
add ebp, ebx
mov ebx, dword [esp + 0x28]
add dword [esp + 0x34], ebp
and esi, ebx
mov edi, ebx
not edi
and edi, dword [esp + 0x18]
mov ebp, ebx
xor edi, esi
mov esi, dword [esp + 0x2c]
shl ebp, 0x17
shr esi, 9
or esi, ebp
mov ebp, dword [esp + 0x2c]
shr ebx, 0x12
shl ebp, 0xe
or ebp, ebx
mov ebx, dword [esp + 0x2c]
xor esi, ebp
mov ebp, dword [esp + 0x28]
shl ebx, 0x12
shr ebp, 0xe
or ebx, ebp
mov ebp, dword [esp + 0x14]
xor esi, ebx
add esi, edi
cmp esi, edi
mov edi, dword [esp + 0x78]
mov edi, dword [edi + ebp]
sbb ebx, ebx
neg ebx
add esi, edi
mov dword [esp + 0x10], ebx
cmp esi, edi
jae 0x4a651f
inc ebx
mov dword [esp + 0x10], ebx
mov ebp, dword [ebp + 0x10]
add esi, ebp
cmp esi, ebp
jae 0x4a652d
inc ebx
mov dword [esp + 0x10], ebx
mov edi, dword [esp + 0x38]
add edi, esi
mov dword [esp + 0x38], edi
cmp edi, esi
jae 0x4a6540
inc ebx
mov dword [esp + 0x10], ebx
mov esi, dword [esp + 0x2c]
mov edi, dword [esp + 0x28]
mov ebp, edi
shl ebp, 0x12
mov ebx, esi
shr ebx, 0xe
or ebx, ebp
shl edi, 0xe
mov ebp, esi
shr ebp, 0x12
or ebp, edi
xor ebx, ebp
mov ebp, dword [esp + 0x28]
mov edi, esi
shl edi, 0x17
shr ebp, 9
or edi, ebp
mov ebp, dword [esp + 0x24]
xor ebx, edi
and ebp, esi
mov edi, esi
mov esi, dword [esp + 0x14]
not edi
and edi, dword [esp + 0x1c]
xor edi, ebp
add ebx, edi
mov edi, dword [esp + 0x80]
add ebx, dword [edi + esi]
mov edi, dword [esp + 0x3c]
add ebx, dword [esi + 0x14]
mov esi, dword [esp + 0x38]
add ebx, dword [esp + 0x10]
add edx, esi
add edi, ebx
mov ebx, dword [esp + 0x30]
cmp edx, esi
sbb esi, esi
neg esi
add esi, edi
add dword [esp + 0x50], esi
mov esi, dword [esp + 0x40]
mov dword [esp + 0x3c], edi
mov edi, esi
and esi, ebx
xor edi, ebx
and edi, ecx
xor edi, esi
mov esi, dword [esp + 0x34]
mov ebp, ebx
shr ebp, 0x1c
shl esi, 4
or esi, ebp
mov ebp, dword [esp + 0x34]
shl ebx, 0x1e
shr ebp, 2
or ebp, ebx
mov ebx, dword [esp + 0x34]
xor esi, ebp
mov ebp, dword [esp + 0x30]
shr ebx, 7
shl ebp, 0x19
or ebx, ebp
xor esi, ebx
mov ebx, dword [esp + 0x38]
add esi, edi
cmp esi, edi
sbb edi, edi
add ebx, esi
neg edi
mov dword [esp + 0x10], edi
mov dword [esp + 0x38], ebx
cmp ebx, esi
jae 0x4a6612
inc edi
mov dword [esp + 0x10], edi
mov esi, dword [esp + 0x34]
mov edi, dword [esp + 0x30]
mov ebx, esi
shl ebx, 0x19
mov ebp, edi
shr ebp, 7
or ebx, ebp
mov ebp, esi
shl ebp, 0x1e
shr edi, 2
or ebp, edi
xor ebx, ebp
mov ebp, dword [esp + 0x30]
mov edi, esi
shl ebp, 4
shr edi, 0x1c
or edi, ebp
xor ebx, edi
add ebx, dword [esp + 0x10]
mov edi, dword [esp + 0x44]
mov ebp, edi
xor ebp, esi
and ebp, dword [esp + 0x58]
and edi, esi
xor ebp, edi
mov edi, dword [esp + 0x28]
add ebp, ebx
add dword [esp + 0x3c], ebp
mov esi, edx
not esi
and esi, dword [esp + 0x20]
and edi, edx
xor esi, edi
mov edi, dword [esp + 0x50]
mov dword [esp + 0x10], esi
mov esi, edi
shr esi, 9
mov ebx, edx
shl ebx, 0x17
or esi, ebx
mov ebx, edi
shl ebx, 0xe
mov ebp, edx
shr ebp, 0x12
or ebx, ebp
xor esi, ebx
mov ebx, edi
shl ebx, 0x12
mov ebp, edx
shr ebp, 0xe
or ebx, ebp
mov ebp, dword [esp + 0x14]
xor esi, ebx
mov ebx, dword [esp + 0x10]
add esi, ebx
cmp esi, ebx
sbb ebx, ebx
neg ebx
mov dword [esp + 0x10], ebx
mov ebx, dword [esp + 0x88]
mov ebx, dword [ebx + ebp]
add esi, ebx
cmp esi, ebx
jae 0x4a66c4
inc dword [esp + 0x10]
mov ebp, dword [ebp + 0x18]
add esi, ebp
cmp esi, ebp
jae 0x4a66d1
inc dword [esp + 0x10]
mov ebx, dword [esp + 0x18]
add ebx, esi
mov dword [esp + 0x18], ebx
cmp ebx, esi
jae 0x4a66e3
inc dword [esp + 0x10]
mov ebx, edi
shr ebx, 0xe
mov esi, edx
shl esi, 0x12
or ebx, esi
mov esi, edi
shr esi, 0x12
mov ebp, edx
shl ebp, 0xe
or esi, ebp
xor ebx, esi
mov esi, edi
shl esi, 0x17
mov ebp, edx
shr ebp, 9
or esi, ebp
xor ebx, esi
mov ebp, dword [esp + 0x2c]
and ebp, edi
mov esi, edi
mov edi, dword [esp + 0x90]
not esi
and esi, dword [esp + 0x24]
xor esi, ebp
add ebx, esi
mov esi, dword [esp + 0x14]
add ebx, dword [edi + esi]
mov edi, dword [esp + 0x18]
add ebx, dword [esi + 0x1c]
mov esi, dword [esp + 0x1c]
add ebx, dword [esp + 0x10]
mov ebp, dword [esp + 0x30]
add esi, ebx
add ecx, edi
cmp ecx, edi
mov edi, dword [esp + 0x58]
sbb ebx, ebx
neg ebx
add ebx, esi
add edi, ebx
mov ebx, dword [esp + 0x38]
mov dword [esp + 0x1c], esi
mov esi, ebp
xor esi, ebx
and ebp, ebx
mov dword [esp + 0x94], esi
and esi, dword [esp + 0x40]
mov dword [esp + 0x64], ebp
xor esi, ebp
mov dword [esp + 0x10], esi
mov esi, dword [esp + 0x3c]
mov ebp, ebx
shr ebp, 0x1c
shl esi, 4
or esi, ebp
mov ebp, dword [esp + 0x3c]
shl ebx, 0x1e
shr ebp, 2
or ebp, ebx
mov ebx, dword [esp + 0x3c]
xor esi, ebp
mov ebp, dword [esp + 0x38]
shr ebx, 7
shl ebp, 0x19
or ebx, ebp
mov ebp, dword [esp + 0x18]
xor esi, ebx
mov ebx, dword [esp + 0x10]
add esi, ebx
cmp esi, ebx
sbb ebx, ebx
add ebp, esi
neg ebx
mov dword [esp + 0x58], edi
mov dword [esp + 0x10], ebx
mov dword [esp + 0x18], ebp
cmp ebp, esi
jae 0x4a67c8
inc ebx
mov dword [esp + 0x10], ebx
mov ebx, dword [esp + 0x34]
mov esi, dword [esp + 0x3c]
mov ebp, ebx
and ebx, esi
xor ebp, esi
mov dword [esp + 0x5c], ebx
mov ebx, esi
shl ebx, 0x19
shl esi, 0x1e
mov dword [esp + 0x60], ebp
mov ebp, dword [esp + 0x38]
shr ebp, 7
or ebx, ebp
mov ebp, dword [esp + 0x38]
shr ebp, 2
or esi, ebp
xor ebx, esi
mov esi, dword [esp + 0x3c]
mov ebp, dword [esp + 0x38]
shr esi, 0x1c
shl ebp, 4
or esi, ebp
xor ebx, esi
add ebx, dword [esp + 0x10]
mov esi, dword [esp + 0x60]
and esi, dword [esp + 0x44]
mov ebp, ecx
xor esi, dword [esp + 0x5c]
shr ebp, 0x12
add esi, ebx
add dword [esp + 0x1c], esi
mov esi, ecx
not esi
and esi, dword [esp + 0x28]
mov ebx, edx
and ebx, ecx
xor esi, ebx
mov dword [esp + 0x10], esi
mov esi, edi
shr esi, 9
mov ebx, ecx
shl ebx, 0x17
or esi, ebx
mov ebx, edi
shl ebx, 0xe
or ebx, ebp
xor esi, ebx
mov ebx, edi
shl ebx, 0x12
mov ebp, ecx
shr ebp, 0xe
or ebx, ebp
mov ebp, dword [esp + 0x14]
xor esi, ebx
mov ebx, dword [esp + 0x10]
add esi, ebx
cmp esi, ebx
sbb ebx, ebx
neg ebx
mov dword [esp + 0x10], ebx
mov ebx, dword [esp + 0x98]
mov ebx, dword [ebx + ebp]
add esi, ebx
cmp esi, ebx
jae 0x4a6884
inc dword [esp + 0x10]
mov ebp, dword [ebp + 0x20]
add esi, ebp
cmp esi, ebp
jae 0x4a6891
inc dword [esp + 0x10]
mov ebx, dword [esp + 0x20]
add ebx, esi
mov dword [esp + 0x20], ebx
cmp ebx, esi
jae 0x4a68a3
inc dword [esp + 0x10]
mov ebx, edi
shr ebx, 0xe
mov esi, ecx
shl esi, 0x12
or ebx, esi
mov esi, edi
shr esi, 0x12
mov ebp, ecx
shl ebp, 0xe
or esi, ebp
xor ebx, esi
mov esi, edi
shl esi, 0x17
mov ebp, ecx
shr ebp, 9
or esi, ebp
xor ebx, esi
mov ebp, dword [esp + 0x50]
and ebp, edi
mov esi, edi
mov edi, dword [esp + 0x68]
not esi
and esi, dword [esp + 0x2c]
xor esi, ebp
add ebx, esi
mov esi, dword [esp + 0x14]
add ebx, dword [edi + esi]
mov edi, dword [esp + 0x40]
add ebx, dword [esi + 0x24]
mov esi, dword [esp + 0x24]
add ebx, dword [esp + 0x10]
add esi, ebx
mov ebx, dword [esp + 0x20]
add edi, ebx
cmp edi, ebx
sbb ebx, ebx
neg ebx
add ebx, esi
add dword [esp + 0x44], ebx
mov ebx, dword [esp + 0x18]
mov dword [esp + 0x24], esi
mov esi, dword [esp + 0x94]
and esi, ebx
xor esi, dword [esp + 0x64]
mov ebp, ebx
mov dword [esp + 0x10], esi
mov esi, dword [esp + 0x1c]
shr ebp, 0x1c
shl esi, 4
or esi, ebp
mov ebp, dword [esp + 0x1c]
shl ebx, 0x1e
shr ebp, 2
or ebp, ebx
mov ebx, dword [esp + 0x1c]
xor esi, ebp
mov ebp, dword [esp + 0x18]
shr ebx, 7
shl ebp, 0x19
or ebx, ebp
mov ebp, dword [esp + 0x20]
xor esi, ebx
mov ebx, dword [esp + 0x10]
add esi, ebx
cmp esi, ebx
sbb ebx, ebx
add ebp, esi
neg ebx
mov dword [esp + 0x40], edi
mov dword [esp + 0x10], ebx
mov dword [esp + 0x20], ebp
cmp ebp, esi
jae 0x4a6979
inc ebx
mov dword [esp + 0x10], ebx
mov esi, dword [esp + 0x1c]
mov ebp, dword [esp + 0x18]
mov ebx, esi
shl ebx, 0x19
shl esi, 0x1e
shr ebp, 7
or ebx, ebp
mov ebp, dword [esp + 0x18]
shr ebp, 2
or esi, ebp
xor ebx, esi
mov esi, dword [esp + 0x1c]
mov ebp, dword [esp + 0x18]
shr esi, 0x1c
shl ebp, 4
or esi, ebp
xor ebx, esi
add ebx, dword [esp + 0x10]
mov esi, dword [esp + 0x60]
and esi, dword [esp + 0x1c]
mov ebp, edi
xor esi, dword [esp + 0x5c]
shl ebp, 0x17
add esi, ebx
add dword [esp + 0x24], esi
mov esi, edi
not esi
and esi, edx
mov ebx, ecx
and ebx, edi
xor esi, ebx
mov ebx, dword [esp + 0x44]
mov dword [esp + 0x64], esi
mov esi, ebx
shr esi, 9
or esi, ebp
shl ebx, 0xe
mov ebp, edi
shr ebp, 0x12
or ebx, ebp
xor esi, ebx
mov ebx, dword [esp + 0x44]
shl ebx, 0x12
mov ebp, edi
shr ebp, 0xe
or ebx, ebp
mov ebp, dword [esp + 0x14]
xor esi, ebx
mov ebx, dword [esp + 0x64]
add esi, ebx
cmp esi, ebx
sbb ebx, ebx
neg ebx
mov dword [esp + 0x10], ebx
mov ebx, dword [esp + 0x8c]
mov ebx, dword [ebx + ebp]
add esi, ebx
cmp esi, ebx
jae 0x4a6a25
inc dword [esp + 0x10]
mov ebp, dword [ebp + 0x28]
add esi, ebp
cmp esi, ebp
jae 0x4a6a32
inc dword [esp + 0x10]
mov ebx, dword [esp + 0x28]
add ebx, esi
mov dword [esp + 0x28], ebx
cmp ebx, esi
jae 0x4a6a44
inc dword [esp + 0x10]
mov esi, dword [esp + 0x44]
mov ebx, esi
shr ebx, 0xe
mov ebp, edi
shl ebp, 0x12
or ebx, ebp
shr esi, 0x12
mov ebp, edi
shl ebp, 0xe
or esi, ebp
xor ebx, esi
mov esi, dword [esp + 0x44]
shr edi, 9
mov ebp, esi
shl ebp, 0x17
or ebp, edi
xor ebx, ebp
mov ebp, dword [esp + 0x58]
and ebp, esi
mov edi, esi
mov esi, dword [esp + 0x14]
not edi
and edi, dword [esp + 0x50]
xor edi, ebp
add ebx, edi
mov edi, dword [esp + 0x7c]
add ebx, dword [edi + esi]
mov edi, dword [esp + 0x2c]
add ebx, dword [esi + 0x2c]
mov esi, dword [esp + 0x28]
add ebx, dword [esp + 0x10]
mov ebp, dword [esp + 0x18]
add edi, ebx
mov ebx, dword [esp + 0x30]
add ebx, esi
cmp ebx, esi
sbb esi, esi
neg esi
add esi, edi
add dword [esp + 0x34], esi
mov esi, dword [esp + 0x38]
mov dword [esp + 0x2c], edi
mov edi, ebp
and ebp, esi
xor edi, esi
mov esi, dword [esp + 0x24]
mov dword [esp + 0x30], ebx
mov ebx, dword [esp + 0x20]
and edi, ebx
xor edi, ebp
mov ebp, ebx
shr ebp, 0x1c
shl esi, 4
or esi, ebp
mov ebp, dword [esp + 0x24]
shl ebx, 0x1e
shr ebp, 2
or ebp, ebx
mov ebx, dword [esp + 0x24]
xor esi, ebp
mov ebp, dword [esp + 0x20]
shr ebx, 7
shl ebp, 0x19
or ebx, ebp
xor esi, ebx
mov ebx, dword [esp + 0x28]
add esi, edi
cmp esi, edi
sbb edi, edi
add ebx, esi
neg edi
mov dword [esp + 0x10], edi
mov dword [esp + 0x28], ebx
cmp ebx, esi
jae 0x4a6b1b
inc edi
mov dword [esp + 0x10], edi
mov esi, dword [esp + 0x24]
mov edi, dword [esp + 0x20]
mov ebx, esi
mov ebp, edi
shr ebp, 7
shl ebx, 0x19
or ebx, ebp
mov ebp, esi
shl ebp, 0x1e
shr edi, 2
or ebp, edi
xor ebx, ebp
mov ebp, dword [esp + 0x20]
shl ebp, 4
mov edi, esi
shr edi, 0x1c
or edi, ebp
mov ebp, dword [esp + 0x1c]
xor ebx, edi
mov edi, dword [esp + 0x3c]
add ebx, dword [esp + 0x10]
xor ebp, edi
and ebp, esi
mov esi, dword [esp + 0x1c]
and esi, edi
xor ebp, esi
mov esi, dword [esp + 0x40]
add ebp, ebx
mov ebx, dword [esp + 0x30]
add dword [esp + 0x2c], ebp
and esi, ebx
mov edi, ebx
not edi
and edi, ecx
xor edi, esi
mov esi, dword [esp + 0x34]
mov ebp, ebx
shl ebp, 0x17
shr esi, 9
or esi, ebp
mov ebp, dword [esp + 0x34]
shr ebx, 0x12
shl ebp, 0xe
or ebp, ebx
mov ebx, dword [esp + 0x34]
xor esi, ebp
mov ebp, dword [esp + 0x30]
shl ebx, 0x12
shr ebp, 0xe
or ebx, ebp
mov ebp, dword [esp + 0x14]
xor esi, ebx
add esi, edi
cmp esi, edi
mov edi, dword [esp + 0x9c]
mov edi, dword [edi + ebp]
sbb ebx, ebx
neg ebx
add esi, edi
mov dword [esp + 0x10], ebx
cmp esi, edi
jae 0x4a6bce
inc ebx
mov dword [esp + 0x10], ebx
mov ebp, dword [ebp + 0x30]
add esi, ebp
cmp esi, ebp
jae 0x4a6bdc
inc ebx
mov dword [esp + 0x10], ebx
add edx, esi
cmp edx, esi
jae 0x4a6be7
inc ebx
mov dword [esp + 0x10], ebx
mov esi, dword [esp + 0x34]
mov edi, dword [esp + 0x30]
mov ebp, edi
shl ebp, 0x12
shl edi, 0xe
mov ebx, esi
shr ebx, 0xe
or ebx, ebp
mov ebp, esi
shr ebp, 0x12
or ebp, edi
xor ebx, ebp
mov ebp, dword [esp + 0x30]
shr ebp, 9
mov edi, esi
shl edi, 0x17
or edi, ebp
mov ebp, dword [esp + 0x44]
xor ebx, edi
and ebp, esi
mov edi, esi
mov esi, dword [esp + 0x14]
not edi
and edi, dword [esp + 0x58]
xor edi, ebp
add ebx, edi
mov edi, dword [esp + 0x84]
add ebx, dword [edi + esi]
mov edi, dword [esp + 0x38]
add ebx, dword [esi + 0x34]
mov esi, dword [esp + 0x50]
add ebx, dword [esp + 0x10]
add edi, edx
add esi, ebx
mov ebx, dword [esp + 0x28]
cmp edi, edx
mov dword [esp + 0x38], edi
sbb edi, edi
neg edi
add edi, esi
add dword [esp + 0x3c], edi
mov dword [esp + 0x50], esi
mov esi, dword [esp + 0x18]
mov edi, ebx
xor edi, esi
and edi, dword [esp + 0x20]
mov ebp, ebx
and ebp, esi
mov esi, dword [esp + 0x2c]
xor edi, ebp
mov ebp, ebx
shr ebp, 0x1c
shl esi, 4
or esi, ebp
mov ebp, dword [esp + 0x2c]
shl ebx, 0x1e
shr ebp, 2
or ebp, ebx
mov ebx, dword [esp + 0x2c]
xor esi, ebp
mov ebp, dword [esp + 0x28]
shr ebx, 7
shl ebp, 0x19
or ebx, ebp
xor esi, ebx
add esi, edi
cmp esi, edi
sbb edi, edi
neg edi
add edx, esi
mov dword [esp + 0x10], edi
cmp edx, esi
jae 0x4a6cb9
inc edi
mov dword [esp + 0x10], edi
mov esi, dword [esp + 0x2c]
mov edi, dword [esp + 0x28]
mov ebp, edi
shr ebp, 7
mov ebx, esi
shl ebx, 0x19
or ebx, ebp
add dword [esp + 0x14], 0x40
mov ebp, esi
shl ebp, 0x1e
shr edi, 2
or ebp, edi
xor ebx, ebp
mov ebp, dword [esp + 0x28]
shl ebp, 4
mov edi, esi
shr edi, 0x1c
or edi, ebp
xor ebx, edi
mov edi, dword [esp + 0x1c]
add ebx, dword [esp + 0x10]
mov ebp, esi
xor ebp, edi
and ebp, dword [esp + 0x24]
and esi, edi
xor ebp, esi
mov esi, dword [esp + 0x48]
add ebp, ebx
add dword [esp + 0x50], ebp
add esi, 0x40
cmp esi, 0x580b5c
mov dword [esp + 0x48], esi
jl 0x4a5ff1
add dword [eax + 0x280], edx
cmp dword [eax + 0x280], edx
sbb edx, edx
neg edx
add edx, dword [esp + 0x50]
add dword [eax + 0x284], edx
mov edx, dword [esp + 0x28]
add dword [eax + 0x288], edx
cmp dword [eax + 0x288], edx
sbb edx, edx
neg edx
add edx, dword [esp + 0x2c]
add dword [eax + 0x28c], edx
mov edx, dword [esp + 0x20]
add dword [eax + 0x290], edx
cmp dword [eax + 0x290], edx
sbb edx, edx
neg edx
add edx, dword [esp + 0x24]
add dword [eax + 0x294], edx
mov edx, dword [esp + 0x18]
add dword [eax + 0x298], edx
cmp dword [eax + 0x298], edx
sbb edx, edx
neg edx
add edx, edi
add dword [eax + 0x29c], edx
mov edx, dword [esp + 0x38]
add dword [eax + 0x2a0], edx
cmp dword [eax + 0x2a0], edx
pop edi
sbb edx, edx
neg edx
add edx, dword [esp + 0x38]
pop esi
add dword [eax + 0x2a4], edx
mov edx, dword [esp + 0x28]
add dword [eax + 0x2a8], edx
cmp dword [eax + 0x2a8], edx
pop ebp
sbb edx, edx
neg edx
add edx, dword [esp + 0x28]
pop ebx
add dword [eax + 0x2ac], edx
mov edx, dword [esp + 0x30]
add dword [eax + 0x2b0], edx
cmp dword [eax + 0x2b0], edx
sbb edx, edx
add dword [eax + 0x2b8], ecx
neg edx
add edx, dword [esp + 0x34]
add dword [eax + 0x2b4], edx
cmp dword [eax + 0x2b8], ecx
sbb ecx, ecx
neg ecx
add ecx, dword [esp + 0x48]
add dword [eax + 0x2bc], ecx
add esp, 0x94
ret