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

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x84
mov ebp, dword [esp + 0x9c]
mov esi, dword [esp + 0xa0]
movzx edx, byte [ebp + 2]
movzx eax, byte [ebp + 0x15]
movzx ecx, byte [ebp + 1]
movzx ebx, byte [ebp]
movzx edi, byte [esi]
movzx esi, byte [esi + 0x15]
shl edx, 0x10
mov dword [esp + 0x20], eax
shl ecx, 8
mov eax, edx
or eax, ecx
mov dword [esp + 0x28], esi
or eax, ebx
xor ebx, ebx
and eax, 0x1fffff
mov ecx, eax
mov eax, dword [esp + 0xa0]
movzx edx, byte [eax + 1]
movzx eax, byte [eax + 2]
shl edx, 8
shl eax, 0x10
or eax, edx
xor edx, edx
mov esi, eax
or esi, edi
and esi, 0x1fffff
add ecx, esi
adc ebx, edx
xor esi, esi
xor edx, edx
mov dword [esp + 0x14], ebx
mov ebx, dword [ebp + 2]
xor edi, edi
mov dword [esp + 0x10], ecx
movzx ecx, byte [ebp + 6]
mov eax, ebx
mov ebx, dword [esp + 0xa0]
shrd eax, esi, 5
and eax, 0x1fffff
mov esi, eax
mov eax, dword [ebx + 2]
shrd eax, edx, 5
xor edx, edx
mov ebx, eax
movzx eax, byte [ebp + 7]
and ebx, 0x1fffff
add esi, ebx
adc edi, edx
xor ebx, ebx
xor edx, edx
shld ebx, ecx, 8
shl ecx, 8
mov dword [esp + 0x34], edi
mov dword [esp + 0x30], esi
mov dword [esp + 8], ecx
mov ecx, dword [esp + 8]
shld edx, eax, 0x10
shl eax, 0x10
mov dword [esp + 0xc], ebx
or ecx, eax
movzx eax, byte [ebp + 5]
mov edi, ecx
or edi, eax
mov dword [esp], edi
mov edi, dword [esp + 0xc]
mov esi, dword [esp]
mov ebx, dword [esp + 0xa0]
or edi, edx
xor edx, edx
mov dword [esp + 4], edi
mov edi, dword [esp + 4]
movzx ecx, byte [ebx + 6]
xor ebx, ebx
mov dword [esp + 4], 0
shrd esi, edi, 2
mov edi, esi
mov esi, ecx
and edi, 0x1fffff
shl esi, 8
mov dword [esp], edi
mov edi, ebx
mov ebx, dword [esp + 0xa0]
shld edi, ecx, 8
mov ecx, esi
movzx eax, byte [ebx + 7]
mov dword [esp + 0x1c], edi
shld edx, eax, 0x10
shl eax, 0x10
mov dword [esp + 8], eax
or ecx, dword [esp + 8]
movzx eax, byte [ebx + 5]
mov dword [esp + 0xc], edx
xor edx, edx
mov edi, ecx
or edi, eax
mov ebx, edi
mov edi, dword [esp + 0x1c]
or edi, dword [esp + 0xc]
mov esi, ebx
mov ebx, dword [ebp + 7]
shrd esi, edi, 2
mov edi, esi
and edi, 0x1fffff
mov eax, edi
add eax, dword [esp]
adc edx, dword [esp + 4]
xor esi, esi
xor edi, edi
mov dword [esp + 0x38], eax
mov eax, ebx
shrd eax, esi, 7
mov dword [esp + 0x3c], edx
xor edx, edx
mov ebx, eax
and ebx, 0x1fffff
mov esi, ebx
mov ebx, dword [esp + 0xa0]
mov eax, dword [ebx + 7]
shrd eax, edx, 7
xor edx, edx
mov ebx, eax
and ebx, 0x1fffff
mov eax, ebx
mov ebx, esi
mov esi, edi
add ebx, eax
mov dword [esp + 0x40], ebx
mov ebx, dword [ebp + 0xa]
adc esi, edx
mov dword [esp + 0x44], esi
xor esi, esi
xor edi, edi
mov eax, ebx
mov ebx, dword [esp + 0xa0]
shrd eax, esi, 4
mov edx, eax
mov eax, dword [ebx + 0xa]
and edx, 0x1fffff
mov esi, edx
xor edx, edx
shrd eax, edx, 4
xor edx, edx
mov ebx, eax
and ebx, 0x1fffff
add esi, ebx
adc edi, edx
mov dword [esp + 0x48], esi
xor ebx, ebx
mov dword [esp + 0x4c], edi
movzx ecx, byte [ebp + 0xe]
xor edx, edx
movzx eax, byte [ebp + 0xf]
mov edi, ebx
mov ebx, dword [esp + 0xa0]
shld edi, ecx, 8
shld edx, eax, 0x10
shl eax, 0x10
mov esi, ecx
mov ecx, eax
movzx eax, byte [ebp + 0xd]
shl esi, 8
or ecx, esi
mov dword [esp + 0xc], edx
mov edx, ecx
movzx ecx, byte [ebx + 0xe]
xor ebx, ebx
or edx, eax
mov dword [esp], edx
mov edx, dword [esp + 0xc]
mov esi, dword [esp]
or edx, edi
mov dword [esp + 4], edx
mov edi, dword [esp + 4]
mov dword [esp + 4], 0
shrd esi, edi, 1
mov edi, ebx
mov ebx, dword [esp + 0xa0]
mov edx, esi
mov esi, ecx
and edx, 0x1fffff
shl esi, 8
movzx eax, byte [ebx + 0xf]
mov dword [esp], edx
xor edx, edx
shld edi, ecx, 8
shld edx, eax, 0x10
shl eax, 0x10
mov ecx, eax
movzx eax, byte [ebx + 0xd]
mov dword [esp + 0x1c], edx
or ecx, esi
mov ebx, dword [ebp + 0xf]
mov edx, ecx
or edx, eax
mov eax, ebx
mov dword [esp + 8], edx
mov edx, dword [esp + 0x1c]
mov esi, dword [esp + 8]
or edx, edi
mov dword [esp + 0xc], edx
mov edi, dword [esp + 0xc]
xor edx, edx
mov ecx, edx
shrd esi, edi, 1
mov edi, esi
and edi, 0x1fffff
mov edx, edi
add edx, dword [esp]
adc ecx, dword [esp + 4]
xor esi, esi
xor edi, edi
shrd eax, esi, 6
mov ebx, eax
mov dword [esp + 0x50], edx
xor edx, edx
and ebx, 0x1fffff
mov dword [esp + 0x54], ecx
mov esi, ebx
mov ebx, dword [esp + 0xa0]
mov eax, dword [ebx + 0xf]
shrd eax, edx, 6
xor edx, edx
mov ebx, eax
and ebx, 0x1fffff
mov eax, ebx
mov ebx, esi
mov esi, edi
add ebx, eax
adc esi, edx
mov dword [esp + 0x18], ebx
xor ebx, ebx
mov dword [esp + 0x1c], esi
movzx ecx, byte [ebp + 0x13]
mov edi, ebx
movzx eax, byte [ebp + 0x14]
xor edx, edx
xor ebx, ebx
mov esi, ecx
shld edi, ecx, 8
shld edx, eax, 0x10
shl esi, 8
shl eax, 0x10
mov dword [esp + 0xc], edi
mov dword [esp], eax
mov ecx, esi
movzx eax, byte [ebp + 0x12]
or ecx, dword [esp]
mov dword [esp + 4], edx
mov edx, dword [esp + 0xc]
or edx, dword [esp + 4]
or ecx, eax
mov edi, edx
mov edx, ecx
shrd edx, edi, 3
mov ecx, edi
mov edi, dword [esp + 0xa0]
shr ecx, 3
mov dword [esp + 0x58], edx
xor edx, edx
mov dword [esp + 0x5c], ecx
movzx ecx, byte [edi + 0x13]
movzx eax, byte [edi + 0x14]
shld ebx, ecx, 8
shl ecx, 8
mov dword [esp + 8], ecx
mov ecx, dword [esp + 8]
shld edx, eax, 0x10
shl eax, 0x10
mov dword [esp + 0xc], ebx
or ecx, eax
movzx eax, byte [edi + 0x12]
mov edi, ecx
mov ecx, dword [esp + 0xa0]
or edi, eax
movzx eax, byte [ebp + 0x17]
mov dword [esp], edi
mov edi, dword [esp + 0xc]
mov esi, dword [esp]
or edi, edx
movzx edx, byte [ebp + 0x16]
mov dword [esp + 4], edi
mov edi, dword [esp + 4]
shrd esi, edi, 3
shr edi, 3
add esi, dword [esp + 0x58]
adc edi, dword [esp + 0x5c]
shl edx, 8
shl eax, 0x10
or eax, edx
or eax, dword [esp + 0x20]
mov dword [esp + 0x58], esi
mov dword [esp + 0x5c], edi
movzx ecx, byte [ecx + 0x16]
xor edi, edi
mov edx, eax
and edx, 0x1fffff
mov esi, edx
xor edx, edx
shl ecx, 8
mov eax, ecx
mov ecx, dword [esp + 0xa0]
movzx ecx, byte [ecx + 0x17]
shl ecx, 0x10
or ecx, eax
or ecx, dword [esp + 0x28]
and ecx, 0x1fffff
add esi, ecx
mov ecx, dword [ebp + 0x17]
adc edi, edx
xor ebx, ebx
mov dword [esp + 0x20], esi
mov dword [esp + 0x24], edi
xor edi, edi
mov eax, ecx
shrd eax, ebx, 5
mov ebx, edi
mov edx, eax
and edx, 0x1fffff
mov esi, edx
mov edx, dword [esp + 0xa0]
mov eax, dword [edx + 0x17]
xor edx, edx
shrd eax, edx, 5
xor edx, edx
mov ecx, eax
and ecx, 0x1fffff
mov eax, ecx
mov ecx, esi
add ecx, eax
movzx eax, byte [ebp + 0x1c]
mov dword [esp + 0x60], ecx
movzx ecx, byte [ebp + 0x1b]
adc ebx, edx
mov dword [esp + 0x64], ebx
xor ebx, ebx
xor edx, edx
shld edx, eax, 0x10
shld ebx, ecx, 8
shl ecx, 8
shl eax, 0x10
mov dword [esp + 8], ecx
mov ecx, dword [esp + 8]
mov dword [esp + 0xc], ebx
xor ebx, ebx
or ecx, eax
movzx eax, byte [ebp + 0x1a]
mov edi, ecx
or edi, eax
mov dword [esp], edi
mov edi, dword [esp + 0xc]
mov esi, dword [esp]
or edi, edx
xor edx, edx
mov dword [esp + 4], edi
mov edi, dword [esp + 4]
mov dword [esp + 4], 0
shrd esi, edi, 2
mov edi, esi
and edi, 0x1fffff
mov dword [esp], edi
mov edi, dword [esp + 0xa0]
movzx ecx, byte [edi + 0x1c]
movzx eax, byte [edi + 0x1b]
shld ebx, ecx, 0x10
shl ecx, 0x10
mov dword [esp + 0x28], ecx
mov ecx, dword [esp + 0x28]
shld edx, eax, 8
shl eax, 8
mov dword [esp + 0x2c], ebx
or ecx, eax
movzx eax, byte [edi + 0x1a]
mov edi, ecx
or edi, eax
mov dword [esp + 8], edi
mov edi, dword [esp + 0x2c]
mov esi, dword [esp + 8]
or edi, edx
xor edx, edx
mov dword [esp + 0xc], edi
mov edi, dword [esp + 0xc]
shrd esi, edi, 2
mov edi, esi
and edi, 0x1fffff
mov eax, edi
mov edi, dword [ebp + 0x1c]
add eax, dword [esp]
adc edx, dword [esp + 4]
xor ebp, ebp
shrd edi, ebp, 7
shr ebp, 7
mov dword [esp], eax
mov ebx, ebp
mov ebp, dword [esp + 0xa0]
mov ecx, edi
mov dword [esp + 4], edx
mov edi, dword [ebp + 0x1c]
xor ebp, ebp
mov edx, ebp
shr edx, 7
mov eax, edi
mov edi, ecx
mov ecx, dword [esp + 0x10]
shrd eax, ebp, 7
mov ebp, ebx
mov ebx, dword [esp + 0x14]
add edi, eax
adc ebp, edx
add ecx, 0x100000
mov dword [esp + 0x28], edi
adc ebx, 0
mov edi, ecx
mov dword [esp + 0x2c], ebp
shrd edi, ebx, 0x15
mov ebp, ebx
mov edx, ebx
mov ebx, dword [esp + 0x14]
mov esi, edi
sar ebp, 0x15
mov edi, esi
add edi, dword [esp + 0x30]
adc ebp, dword [esp + 0x34]
mov dword [esp + 0x30], edi
mov edi, dword [esp + 0x38]
mov dword [esp + 0x34], ebp
mov ebp, ecx
mov ecx, dword [esp + 0x10]
and ebp, 0xffe00000
mov eax, edi
sub ecx, ebp
mov ebp, dword [esp + 0x3c]
sbb ebx, edx
add eax, 0x100000
mov dword [esp + 0x68], ecx
mov dword [esp + 0x6c], ebx
mov ecx, eax
mov edx, ebp
mov esi, ecx
adc edx, 0
mov ebx, edx
shrd eax, edx, 0x15
sar edx, 0x15
add eax, dword [esp + 0x40]
adc edx, dword [esp + 0x44]
and esi, 0xffe00000
sub edi, esi
sbb ebp, ebx
mov dword [esp + 8], eax
mov dword [esp + 0xc], edx
mov dword [esp + 0x38], edi
mov esi, dword [esp + 0x48]
mov edi, dword [esp + 0x4c]
mov dword [esp + 0x3c], ebp
mov eax, esi
mov edx, edi
add eax, 0x100000
adc edx, 0
mov ecx, eax
mov ebx, edx
mov ebp, ecx
mov ecx, dword [esp + 0x1c]
shrd eax, edx, 0x15
sar edx, 0x15
add eax, dword [esp + 0x50]
adc edx, dword [esp + 0x54]
and ebp, 0xffe00000
sub esi, ebp
sbb edi, ebx
mov dword [esp + 0x48], esi
mov dword [esp + 0x4c], edi
mov dword [esp + 0x40], eax
mov dword [esp + 0x44], edx
mov edx, dword [esp + 0x18]
add edx, 0x100000
adc ecx, 0
mov esi, edx
mov ebp, edx
mov ebx, ecx
mov ecx, dword [esp + 0x24]
mov edi, ebx
mov edx, ebx
shrd esi, ebx, 0x15
sar edi, 0x15
add esi, dword [esp + 0x58]
mov ebx, dword [esp + 0x18]
adc edi, dword [esp + 0x5c]
and ebp, 0xffe00000
sub ebx, ebp
mov dword [esp + 0x50], esi
mov esi, dword [esp + 0x1c]
mov dword [esp + 0x58], ebx
mov dword [esp + 0x54], edi
sbb esi, edx
mov edx, dword [esp + 0x20]
mov dword [esp + 0x5c], esi
add edx, 0x100000
adc ecx, 0
mov esi, edx
mov ebp, edx
mov ebx, ecx
mov edi, ebx
mov edx, ebx
shrd esi, ebx, 0x15
sar edi, 0x15
add esi, dword [esp + 0x60]
mov ebx, dword [esp + 0x20]
adc edi, dword [esp + 0x64]
and ebp, 0xffe00000
sub ebx, ebp
mov dword [esp + 0x10], esi
mov esi, dword [esp + 0x24]
mov dword [esp + 0x14], edi
mov dword [esp + 0x20], ebx
sbb esi, edx
mov dword [esp + 0x24], esi
mov edx, dword [esp]
mov ecx, dword [esp + 4]
mov esi, dword [esp]
add edx, 0x100000
adc ecx, 0
mov ebp, edx
mov edi, ecx
mov ecx, edx
mov ebx, edi
mov edx, edi
shrd ecx, edi, 0x15
sar ebx, 0x15
mov edi, dword [esp + 4]
add ecx, dword [esp + 0x28]
adc ebx, dword [esp + 0x2c]
and ebp, 0xffe00000
sub esi, ebp
sbb edi, edx
mov dword [esp], esi
mov esi, dword [esp + 0x30]
mov dword [esp + 4], edi
mov edi, dword [esp + 0x34]
mov dword [esp + 0x18], ecx
mov dword [esp + 0x1c], ebx
mov edx, esi
add edx, 0x100000
mov ecx, edi
adc ecx, 0
mov eax, edx
mov ebx, ecx
mov ecx, edx
mov edx, ebx
mov ebp, ecx
shrd eax, ebx, 0x15
sar edx, 0x15
add eax, dword [esp + 0x38]
adc edx, dword [esp + 0x3c]
and ebp, 0xffe00000
mov dword [esp + 0x28], eax
mov eax, ebp
mov ebp, edi
mov edi, esi
mov dword [esp + 0x2c], edx
mov edx, dword [esp + 0xc]
sub edi, eax
mov eax, dword [esp + 8]
sbb ebp, ebx
mov dword [esp + 0x30], edi
mov dword [esp + 0x34], ebp
add eax, 0x100000
adc edx, 0
mov edi, eax
shrd edi, edx, 0x15
mov ebp, edx
mov esi, edi
sar ebp, 0x15
mov edi, esi
add edi, dword [esp + 0x48]
mov esi, dword [esp + 8]
adc ebp, dword [esp + 0x4c]
mov dword [esp + 0x38], edi
mov edi, dword [esp + 0xc]
mov dword [esp + 0x3c], ebp
mov ebp, eax
and ebp, 0xffe00000
sub esi, ebp
sbb edi, edx
mov dword [esp + 8], esi
mov esi, dword [esp + 0x40]
mov dword [esp + 0xc], edi
mov edi, dword [esp + 0x44]
mov eax, esi
add eax, 0x100000
mov edx, edi
adc edx, 0
mov ecx, eax
mov ebx, edx
mov ebp, ecx
shrd eax, edx, 0x15
sar edx, 0x15
add eax, dword [esp + 0x58]
adc edx, dword [esp + 0x5c]
and ebp, 0xffe00000
mov dword [esp + 0x40], eax
mov dword [esp + 0x44], edx
mov edx, ebx
mov ebx, esi
sub ebx, ebp
mov esi, edi
mov edi, dword [esp + 0x54]
sbb esi, edx
mov dword [esp + 0x48], ebx
mov dword [esp + 0x4c], esi
mov esi, dword [esp + 0x50]
mov edx, edi
mov eax, esi
add eax, 0x100000
adc edx, 0
mov ecx, eax
mov ebx, edx
mov ebp, ecx
shrd eax, edx, 0x15
sar edx, 0x15
add eax, dword [esp + 0x20]
adc edx, dword [esp + 0x24]
and ebp, 0xffe00000
mov dword [esp + 0x50], eax
mov eax, ebp
mov ebp, edi
mov edi, esi
mov dword [esp + 0x54], edx
mov edx, dword [esp + 0x14]
sub edi, eax
mov eax, dword [esp + 0x10]
mov esi, dword [esp + 0x10]
sbb ebp, ebx
mov dword [esp + 0x58], edi
mov dword [esp + 0x5c], ebp
add eax, 0x100000
adc edx, 0
mov edi, eax
mov ecx, eax
shrd edi, edx, 0x15
mov ebp, edx
mov ebx, edx
sar ebp, 0x15
mov eax, edi
add eax, dword [esp]
mov edx, ebp
adc edx, dword [esp + 4]
mov edi, dword [esp + 0x14]
mov ebp, ecx
mov ecx, dword [esp + 0x18]
and ebp, 0xffe00000
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0x18]
sub esi, ebp
mov dword [esp + 0x64], edx
mov edx, dword [esp + 0x1c]
sbb edi, ebx
mov ebx, dword [esp + 0x1c]
mov dword [esp + 0x70], esi
add eax, 0x100000
mov dword [esp + 0x74], edi
adc edx, 0
mov ebp, eax
mov esi, eax
mov edi, edx
and ebp, 0xffe00000
mov eax, 0xa2c13
shrd esi, edx, 0x15
sar edi, 0x15
sub ecx, ebp
sbb ebx, edx
mov dword [esp + 0x78], ecx
mov ebp, edi
mov dword [esp + 0x7c], ebx
mul esi
imul ebx, edi, 0xa2c13
mov edi, esi
add edx, ebx
add eax, dword [esp + 0x68]
adc edx, dword [esp + 0x6c]
imul ecx, ebp, 0x72d18
mov dword [esp + 0x10], eax
mov eax, 0x72d18
mov dword [esp + 0x14], edx
mul esi
add edx, ecx
mov ebx, eax
mov eax, 0x9fb67
add ebx, dword [esp + 0x30]
mov esi, edx
adc esi, dword [esp + 0x34]
imul ecx, ebp, 0x9fb67
mul edi
mov dword [esp + 0x18], ebx
mov ebx, edi
mov dword [esp + 0x1c], esi
mov esi, ebp
add edx, ecx
mov edi, eax
add edi, dword [esp + 0x28]
mov ebp, edx
adc ebp, dword [esp + 0x2c]
imul eax, esi, 0xfff0c653
mov dword [esp + 0x20], edi
mov edi, esi
mov esi, ebx
mov dword [esp + 0x24], ebp
mov ebp, ebx
mov dword [esp], esi
neg ebp
mov dword [esp + 4], edi
lea ecx, [eax + ebp]
mov eax, 0xfff0c653
mov ebx, ebp
mul dword [esp]
add edx, ecx
mov esi, eax
add esi, dword [esp + 8]
mov edi, edx
adc edi, dword [esp + 0xc]
mov eax, 0x215d1
mul dword [esp]
mov dword [esp + 0x28], esi
mov esi, dword [esp]
mov dword [esp + 0x2c], edi
mov edi, dword [esp + 4]
imul ecx, edi, 0x215d1
mov edi, eax
add edx, ecx
add edi, dword [esp + 0x38]
mov ebp, edx
adc ebp, dword [esp + 0x3c]
mov dword [esp + 0x30], edi
mov dword [esp + 0x34], ebp
mov edi, dword [esp + 4]
mov dword [esp + 4], 0
mov dword [esp + 0xc], 0
imul eax, edi, 0xfff59083
add ebx, eax
mov eax, 0xfff59083
mul esi
add edx, ebx
mov ecx, edx
mov edx, eax
add edx, dword [esp + 0x48]
adc ecx, dword [esp + 0x4c]
mov dword [esp + 0x38], edx
mov edx, dword [esp + 0x10]
mov dword [esp + 0x3c], ecx
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x14], 0
mov ebx, edx
shrd ebx, ecx, 0x15
mov esi, ecx
sar esi, 0x15
mov edi, esi
mov esi, ebx
add esi, dword [esp + 0x18]
adc edi, dword [esp + 0x1c]
mov ebx, edx
mov dword [esp + 0x1c], 0
and ebx, 0x1fffff
mov dword [esp], ebx
mov edx, esi
mov ebx, esi
shrd edx, edi, 0x15
mov ecx, edi
sar ecx, 0x15
mov eax, edx
add eax, dword [esp + 0x20]
mov edx, ecx
adc edx, dword [esp + 0x24]
and ebx, 0x1fffff
mov dword [esp + 8], ebx
mov ebx, eax
mov ebp, eax
shrd ebx, edx, 0x15
mov esi, edx
sar esi, 0x15
mov ecx, ebx
add ecx, dword [esp + 0x28]
mov ebx, esi
adc ebx, dword [esp + 0x2c]
and ebp, 0x1fffff
mov dword [esp + 0x10], ebp
mov esi, ecx
mov edi, ebx
shrd esi, ebx, 0x15
sar edi, 0x15
add esi, dword [esp + 0x30]
mov ebx, ecx
adc edi, dword [esp + 0x34]
and ebx, 0x1fffff
mov dword [esp + 0x18], ebx
mov edx, esi
shrd edx, edi, 0x15
mov ecx, edi
sar ecx, 0x15
mov ebx, ecx
mov ecx, edx
add ecx, dword [esp + 0x38]
adc ebx, dword [esp + 0x3c]
mov edx, esi
and edx, 0x1fffff
mov dword [esp + 0x20], edx
mov dword [esp + 0x24], 0
mov edi, ecx
mov dword [esp + 0x2c], 0
mov dword [esp + 0x34], 0
shrd edi, ebx, 0x15
mov ebp, ebx
mov ebx, ecx
mov dword [esp + 0x3c], 0
sar ebp, 0x15
mov eax, edi
add eax, dword [esp + 0x40]
mov edx, ebp
adc edx, dword [esp + 0x44]
and ebx, 0x1fffff
mov dword [esp + 0x28], ebx
mov dword [esp + 0x44], 0
mov dword [esp + 0x4c], 0
mov ebx, eax
shrd ebx, edx, 0x15
mov esi, edx
sar esi, 0x15
mov edi, esi
mov esi, ebx
add esi, dword [esp + 0x58]
adc edi, dword [esp + 0x5c]
mov ebx, eax
mov dword [esp + 0x5c], 0
and ebx, 0x1fffff
mov dword [esp + 0x30], ebx
mov edx, esi
shrd edx, edi, 0x15
mov ecx, edi
sar ecx, 0x15
mov ebx, ecx
mov ecx, edx
add ecx, dword [esp + 0x50]
adc ebx, dword [esp + 0x54]
mov edx, esi
mov dword [esp + 0x54], 0
and edx, 0x1fffff
mov dword [esp + 0x38], edx
mov esi, ecx
mov edi, ebx
shrd esi, ebx, 0x15
sar edi, 0x15
add esi, dword [esp + 0x70]
mov ebx, ecx
adc edi, dword [esp + 0x74]
and ebx, 0x1fffff
mov dword [esp + 0x40], ebx
mov eax, esi
mov ebx, esi
mov edx, edi
shrd eax, edi, 0x15
sar edx, 0x15
add eax, dword [esp + 0x60]
adc edx, dword [esp + 0x64]
and ebx, 0x1fffff
mov dword [esp + 0x48], ebx
mov ebx, eax
shrd ebx, edx, 0x15
mov esi, edx
sar esi, 0x15
mov ecx, ebx
add ecx, dword [esp + 0x78]
mov ebx, esi
adc ebx, dword [esp + 0x7c]
and eax, 0x1fffff
mov dword [esp + 0x50], eax
mov esi, ecx
mov eax, ecx
shrd esi, ebx, 0x15
and eax, 0x1fffff
mov edi, ebx
sar edi, 0x15
mov dword [esp + 0x58], eax
mov eax, 0xa2c13
imul ecx, edi, 0xa2c13
mul esi
add edx, ecx
add eax, dword [esp]
adc edx, dword [esp + 4]
imul ecx, edi, 0x72d18
mov dword [esp], eax
mov eax, 0x72d18
mov dword [esp + 4], edx
mul esi
add edx, ecx
add eax, dword [esp + 8]
adc edx, dword [esp + 0xc]
imul ebx, edi, 0x9fb67
mov dword [esp + 8], eax
mov eax, 0x9fb67
mov dword [esp + 0xc], edx
mul esi
add edx, ebx
mov ebx, esi
mov ecx, edx
mov edx, eax
add edx, dword [esp + 0x10]
adc ecx, dword [esp + 0x14]
mov eax, 0xfff0c653
neg ebx
imul ebp, edi, 0xfff0c653
mov dword [esp + 0x10], edx
mul esi
add ebp, ebx
mov dword [esp + 0x14], ecx
add edx, ebp
mov ecx, edx
mov edx, eax
add edx, dword [esp + 0x18]
mov eax, 0x215d1
adc ecx, dword [esp + 0x1c]
imul ebp, edi, 0x215d1
mov dword [esp + 0x18], edx
mul esi
mov dword [esp + 0x1c], ecx
add edx, ebp
mov ecx, edx
mov edx, eax
add edx, dword [esp + 0x20]
adc ecx, dword [esp + 0x24]
imul eax, edi, 0xfff59083
mov dword [esp + 0x20], edx
add ebx, eax
mov eax, 0xfff59083
mov dword [esp + 0x24], ecx
mul esi
mov ecx, dword [esp]
mov edi, edx
mov esi, eax
mov eax, ecx
add edi, ebx
mov ebx, dword [esp + 4]
add esi, dword [esp + 0x28]
adc edi, dword [esp + 0x2c]
mov edx, ebx
shrd eax, ebx, 0x15
sar edx, 0x15
add eax, dword [esp + 8]
mov ebx, ecx
adc edx, dword [esp + 0xc]
and ebx, 0x1fffff
mov dword [esp + 0xc], 0
mov dword [esp + 8], ebx
mov ecx, eax
mov dword [esp], eax
mov ebx, edx
mov dword [esp + 4], edx
shrd ecx, edx, 0x15
sar ebx, 0x15
add ecx, dword [esp + 0x10]
adc ebx, dword [esp + 0x14]
mov dword [esp + 0x28], ecx
mov dword [esp + 0x2c], ebx
shrd ecx, ebx, 0x15
sar ebx, 0x15
add ecx, dword [esp + 0x18]
adc ebx, dword [esp + 0x1c]
mov dword [esp + 0x18], ecx
shrd ecx, ebx, 0x15
mov dword [esp + 0x1c], ebx
sar ebx, 0x15
mov eax, ecx
add eax, dword [esp + 0x20]
mov edx, ebx
adc edx, dword [esp + 0x24]
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], edx
mov ecx, edx
mov edx, eax
shrd edx, ecx, 0x15
sar ecx, 0x15
mov ebx, ecx
mov eax, edx
add eax, esi
mov edx, ebx
adc edx, edi
mov edi, eax
mov dword [esp + 0x60], eax
shrd edi, edx, 0x15
mov ebp, edx
mov dword [esp + 0x64], edx
sar ebp, 0x15
mov eax, edi
add eax, dword [esp + 0x30]
mov edx, ebp
adc edx, dword [esp + 0x34]
mov edi, eax
mov dword [esp + 0x30], eax
shrd edi, edx, 0x15
mov ebp, edx
mov dword [esp + 0x34], edx
sar ebp, 0x15
mov esi, edi
add esi, dword [esp + 0x38]
mov edi, ebp
adc edi, dword [esp + 0x3c]
mov dword [esp + 0x38], esi
shrd esi, edi, 0x15
mov dword [esp + 0x3c], edi
sar edi, 0x15
mov ecx, esi
add ecx, dword [esp + 0x40]
mov ebx, edi
adc ebx, dword [esp + 0x44]
mov eax, dword [esp + 0x48]
mov edx, dword [esp + 0x4c]
mov dword [esp + 0x14], 0
mov esi, ecx
shrd esi, ebx, 0x15
mov edi, ebx
sar edi, 0x15
add eax, esi
mov esi, dword [esp + 0x98]
adc edx, edi
mov edi, eax
mov ebp, edx
mov edx, ecx
and edx, 0x1fffff
mov ecx, ebp
mov dword [esp + 0x10], edx
sar ecx, 0x15
mov edx, eax
shrd edx, ebp, 0x15
mov ebx, ecx
add edx, dword [esp + 0x50]
mov ecx, ebx
adc ecx, dword [esp + 0x54]
mov dword [esp + 0x40], edx
mov dword [esp + 0x44], ecx
shrd edx, ecx, 0x15
sar ecx, 0x15
add edx, dword [esp + 0x58]
mov ebx, ecx
mov ecx, ebx
adc ecx, dword [esp + 0x5c]
mov dword [esp + 0x48], edx
mov edx, dword [esp + 8]
mov dword [esp + 0x4c], ecx
mov ecx, dword [esp + 0xc]
mov byte [esi], dl
mov byte [esi + 1], dh
mov eax, edx
movzx esi, byte [esp]
mov edx, dword [esp + 4]
shrd eax, ecx, 0x10
mov ecx, eax
mov eax, dword [esp + 0x98]
shl esi, 5
or ecx, esi
mov byte [eax + 2], cl
mov eax, dword [esp]
shrd eax, edx, 3
mov edx, dword [esp + 4]
mov ecx, eax
mov eax, dword [esp + 0x98]
mov byte [eax + 3], cl
mov eax, dword [esp]
shrd eax, edx, 0xb
mov ecx, eax
mov eax, dword [esp + 0x98]
mov byte [eax + 4], cl
mov ebx, dword [esp + 0x28]
mov edx, dword [esp + 4]
mov eax, dword [esp]
mov esi, dword [esp + 0x2c]
mov ecx, ebx
shrd eax, edx, 0x13
lea edx, [ecx*4]
mov ecx, dword [esp + 0x98]
and eax, 3
or eax, edx
mov edx, esi
mov byte [ecx + 5], al
mov eax, ebx
shrd eax, edx, 6
shrd ebx, esi, 0xe
mov byte [ecx + 6], al
mov esi, dword [esp + 0x1c]
mov ecx, ebx
mov ebx, dword [esp + 0x18]
and ecx, 0x7f
mov edx, esi
mov eax, ebx
shl eax, 7
or ecx, eax
mov eax, dword [esp + 0x98]
mov byte [eax + 7], cl
mov ecx, dword [esp + 0x98]
mov eax, ebx
shrd eax, esi, 1
mov byte [ecx + 8], al
mov eax, ebx
shrd eax, edx, 9
shrd ebx, esi, 0x11
mov byte [ecx + 9], al
mov esi, dword [esp + 0x24]
mov ecx, ebx
mov ebx, dword [esp + 0x20]
and ecx, 0xf
mov edx, esi
mov eax, ebx
shl eax, 4
or ecx, eax
mov eax, dword [esp + 0x98]
mov byte [eax + 0xa], cl
mov ecx, dword [esp + 0x98]
mov eax, ebx
shrd eax, esi, 4
mov byte [ecx + 0xb], al
mov eax, ebx
shrd eax, edx, 0xc
shrd ebx, esi, 0x14
mov byte [ecx + 0xc], al
mov esi, dword [esp + 0x64]
mov ecx, ebx
mov ebx, dword [esp + 0x60]
and ecx, 1
mov eax, ebx
mov edx, ebx
add eax, eax
or ecx, eax
mov eax, dword [esp + 0x98]
shrd edx, esi, 7
shrd ebx, esi, 0xf
mov byte [eax + 0xd], cl
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x98]
and ebx, 0x3f
mov byte [ecx + 0xe], dl
mov ecx, eax
mov edx, dword [esp + 0x34]
shl ecx, 6
or ecx, ebx
mov ebx, dword [esp + 0x98]
mov esi, edx
mov byte [ebx + 0xf], cl
mov ecx, dword [esp + 0x98]
mov ebx, eax
shrd eax, edx, 2
mov byte [ecx + 0x10], al
mov eax, ebx
shrd eax, edx, 0xa
shrd ebx, esi, 0x12
mov byte [ecx + 0x11], al
mov esi, dword [esp + 0x3c]
mov ecx, ebx
mov ebx, dword [esp + 0x38]
and ecx, 7
mov eax, ebx
shl eax, 3
or ecx, eax
mov eax, dword [esp + 0x98]
mov byte [eax + 0x12], cl
mov ecx, dword [esp + 0x98]
mov eax, ebx
shrd eax, esi, 5
shrd ebx, esi, 0xd
mov byte [ecx + 0x13], al
mov eax, dword [esp + 0x98]
mov esi, dword [esp + 0x14]
mov byte [eax + 0x14], bl
mov ebx, dword [esp + 0x10]
mov ecx, eax
mov eax, ebx
mov byte [ecx + 0x15], bl
mov byte [ecx + 0x16], bh
shrd eax, esi, 0x10
mov ebx, dword [esp + 0x98]
mov ecx, edi
shl ecx, 5
or eax, ecx
mov ecx, dword [esp + 0x40]
mov byte [ebx + 0x17], al
mov eax, edi
shrd eax, ebp, 3
mov byte [ebx + 0x18], al
mov eax, edi
shrd eax, ebp, 0xb
mov byte [ebx + 0x19], al
mov eax, edi
mov ebx, dword [esp + 0x44]
shrd eax, ebp, 0x13
mov edi, dword [esp + 0x48]
mov ebp, dword [esp + 0x4c]
mov esi, eax
mov eax, ecx
and esi, 3
shl eax, 2
or eax, esi
mov esi, dword [esp + 0x98]
mov byte [esi + 0x1a], al
mov eax, ecx
shrd eax, ebx, 6
shrd ecx, ebx, 0xe
mov byte [esi + 0x1b], al
mov eax, edi
shl eax, 7
and ecx, 0x7f
or ecx, eax
mov eax, edi
shrd eax, ebp, 1
mov byte [esi + 0x1c], cl
mov byte [esi + 0x1d], al
mov eax, edi
shrd edi, ebp, 0x11
shrd eax, ebp, 9
mov ecx, edi
mov byte [esi + 0x1e], al
mov byte [esi + 0x1f], cl
add esp, 0x84
pop ebx
pop esi
pop edi
pop ebp
ret