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

Disassembly:
sub esp, 0xcc
push ebx
push ebp
push esi
mov esi, dword [esp + 0xdc]
push edi
mov edi, dword [esp + 0xec]
mov eax, dword [edi + 0x9c]
mov ecx, dword [edi + 0xa0]
mov ebp, dword [edi + 0x90]
mov ebx, dword [edi + 0x94]
mov edx, dword [edi + 0x98]
mov dword [esp + 0xb4], eax
mov eax, dword [edi + 0xa4]
mov dword [esp + 0x98], ecx
mov ecx, dword [edi + 0xa8]
mov dword [esp + 0x9c], eax
mov eax, dword [edi + 0xac]
mov dword [esp + 0xa0], ecx
mov ecx, dword [esp + 0xe4]
mov dword [esp + 0xa4], eax
mov eax, ecx
shr eax, 7
and ecx, 0x7f
cmp dword [edi + 0x1c0], 0
mov dword [esp + 0xb8], ebp
mov dword [esp + 0xbc], ebx
mov dword [esp + 0xb0], edx
mov dword [esp + 0x6c], eax
mov dword [esp + 0xc0], ecx
je 0x44c7a4
mov edx, dword [edi + 0xd4]
mov ebx, dword [edi + 0xe4]
mov ebp, dword [edi + 0xd0]
mov dword [esp + 0x24], edx
mov edx, dword [edi + 0xd8]
mov dword [esp + 0x18], edx
mov edx, dword [edi + 0xdc]
mov dword [esp + 0x1c], edx
mov edx, dword [edi + 0xe0]
mov dword [esp + 0x3c], edx
mov edx, dword [edi + 0xe8]
mov dword [esp + 0x28], edx
mov edx, dword [edi + 0xec]
mov dword [esp + 0x40], ebx
mov dword [esp + 0x2c], edx
jmp 0x44caa1
test eax, eax
je 0x44d1b2
xor eax, eax
mov edx, esi
sub edx, edi
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], eax
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], eax
mov dword [esp + 0x38], eax
lea ecx, [edi + 8]
mov dword [esp + 0x80], edx
jmp 0x44c7e7
mov edx, dword [esp + 0x80]
mov ebx, dword [esi + eax*8]
add ebx, dword [ecx - 8]
mov eax, dword [esi + eax*8 + 4]
adc eax, dword [ecx - 4]
mov ebp, dword [edx + ecx]
add ebp, dword [ecx]
mov edx, dword [edx + ecx + 4]
adc edx, dword [ecx + 4]
mov dword [esp + 0x74], eax
mov dword [esp + 0x50], edx
mul ebp
mov dword [esp + 0x64], eax
mov eax, ebx
mov dword [esp + 0x68], edx
mul dword [esp + 0x50]
mov dword [esp + 0x78], eax
mov eax, ebx
mov ebx, dword [esp + 0x1c]
mov dword [esp + 0x7c], edx
mul ebp
add dword [esp + 0x18], eax
adc ebx, edx
mov dword [esp + 0x1c], ebx
cmp ebx, edx
ja 0x44c848
jb 0x44c83e
cmp dword [esp + 0x18], eax
jae 0x44c848
mov dword [esp + 0x54], 1
jmp 0x44c850
mov dword [esp + 0x54], 0
mov eax, dword [esp + 0x74]
mul dword [esp + 0x50]
mov ebx, eax
xor eax, eax
add ebx, dword [esp + 0x7c]
adc edx, eax
add ebx, dword [esp + 0x68]
adc edx, eax
add ebx, dword [esp + 0x54]
adc edx, eax
add dword [esp + 0x20], ebx
mov eax, dword [esp + 0x64]
adc dword [esp + 0x24], edx
xor edx, edx
xor ebx, ebx
add eax, dword [esp + 0x78]
adc ebx, edx
add dword [esp + 0x10], eax
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x38]
adc edx, ebx
add eax, 2
add ecx, 0x10
cmp eax, 0x10
mov dword [esp + 0x14], edx
mov dword [esp + 0x38], eax
jl 0x44c7e0
mov eax, dword [esp + 0x10]
mov ebx, dword [esp + 0x1c]
xor ecx, ecx
add dword [esp + 0x18], ecx
adc ebx, eax
mov dword [esp + 0x1c], ebx
cmp ebx, eax
ja 0x44c8d0
jb 0x44c8c9
cmp dword [esp + 0x18], ecx
jae 0x44c8d0
mov eax, 1
jmp 0x44c8d2
xor eax, eax
xor ebx, ebx
add edx, eax
adc ebx, ecx
add dword [esp + 0x20], edx
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], ecx
adc dword [esp + 0x24], ebx
mov dword [esp + 0x28], ecx
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x40], ecx
add edi, 0x18
jmp 0x44c900
mov ebx, dword [esi + ecx*8]
add ebx, dword [edi - 8]
mov eax, dword [esi + ecx*8 + 4]
adc eax, dword [edi - 4]
mov ebp, dword [esi + ecx*8 + 8]
add ebp, dword [edi]
mov edx, dword [esi + ecx*8 + 0xc]
adc edx, dword [edi + 4]
mov dword [esp + 0x74], eax
mov dword [esp + 0x50], edx
mul ebp
mov dword [esp + 0x64], eax
mov eax, ebx
mov dword [esp + 0x68], edx
mul dword [esp + 0x50]
mov dword [esp + 0x78], eax
mov eax, ebx
mov ebx, dword [esp + 0x2c]
mov dword [esp + 0x7c], edx
mul ebp
add dword [esp + 0x28], eax
adc ebx, edx
mov dword [esp + 0x2c], ebx
cmp ebx, edx
ja 0x44c962
jb 0x44c958
cmp dword [esp + 0x28], eax
jae 0x44c962
mov dword [esp + 0x54], 1
jmp 0x44c96a
mov dword [esp + 0x54], 0
mov eax, dword [esp + 0x74]
mul dword [esp + 0x50]
mov ebx, eax
xor eax, eax
add ebx, dword [esp + 0x7c]
adc edx, eax
add ebx, dword [esp + 0x68]
adc edx, eax
add ebx, dword [esp + 0x54]
adc edx, eax
add dword [esp + 0x3c], ebx
mov eax, dword [esp + 0x64]
adc dword [esp + 0x40], edx
xor edx, edx
xor ebx, ebx
add eax, dword [esp + 0x78]
adc edx, ebx
add dword [esp + 0x10], eax
mov eax, dword [esp + 0x14]
adc eax, edx
add ecx, 2
add edi, 0x10
cmp ecx, 0x10
mov dword [esp + 0x14], eax
jl 0x44c900
mov ebp, dword [esp + 0x28]
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x2c]
xor edi, edi
add ebp, edi
adc ecx, edx
cmp ecx, edx
ja 0x44c9de
jb 0x44c9d7
cmp ebp, edi
jae 0x44c9de
mov edx, 1
jmp 0x44c9e0
xor edx, edx
xor ebx, ebx
xor edi, edi
add eax, edx
mov edx, dword [esp + 0xa4]
adc ebx, edi
add eax, dword [esp + 0x3c]
mov edi, dword [esp + 0xa0]
adc ebx, dword [esp + 0x40]
and ebx, 0x3fffffff
add ebp, edi
adc ecx, edx
mov dword [esp + 0x28], ebp
mov dword [esp + 0x2c], ecx
cmp ecx, edx
ja 0x44ca21
jb 0x44ca1a
cmp ebp, edi
jae 0x44ca21
mov ecx, 1
jmp 0x44ca23
xor ecx, ecx
mov ebp, dword [esp + 0x20]
xor edx, edx
add ecx, dword [esp + 0x98]
adc edx, dword [esp + 0x9c]
add eax, ecx
mov ecx, dword [esp + 0x1c]
adc ebx, edx
and dword [esp + 0x24], 0x3fffffff
mov edx, dword [esp + 0xb0]
add dword [esp + 0x18], edx
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
adc ecx, eax
mov dword [esp + 0x40], ebx
mov dword [esp + 0x1c], ecx
cmp ecx, eax
ja 0x44ca7a
jb 0x44ca73
cmp dword [esp + 0x18], edx
jae 0x44ca7a
mov eax, 1
jmp 0x44ca7c
xor eax, eax
xor ecx, ecx
add eax, dword [esp + 0xb8]
adc ecx, dword [esp + 0xbc]
add ebp, eax
adc dword [esp + 0x24], ecx
mov eax, dword [esp + 0x6c]
mov ecx, dword [esp + 0xc0]
sub esi, 0xffffff80
dec eax
mov dword [esp + 0x20], ebp
test eax, eax
je 0x44cde3
mov edx, 0xfffffff8
sub edx, dword [esp + 0xec]
mov dword [esp + 0x80], edx
jmp 0x44cad7
mov edx, dword [esp + 0x80]
mov ecx, dword [esp + 0xec]
dec eax
mov dword [esp + 0x6c], eax
xor eax, eax
mov dword [esp + 0x78], eax
mov dword [esp + 0x7c], eax
mov dword [esp + 0x44], eax
mov dword [esp + 0x48], eax
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], eax
mov dword [esp + 0x38], eax
lea eax, [edx + esi + 8]
add ecx, 8
mov dword [esp + 0x88], eax
nop
mov eax, dword [esp + 0x38]
mov edi, dword [esi + eax*8]
mov ebp, dword [esi + eax*8 + 4]
add edi, dword [ecx - 8]
mov eax, dword [esp + 0x88]
mov ebx, dword [eax + ecx]
adc ebp, dword [ecx - 4]
mov eax, dword [eax + ecx + 4]
add ebx, dword [ecx]
adc eax, dword [ecx + 4]
mov dword [esp + 0xd8], eax
mov eax, ebp
mul ebx
mov dword [esp + 0xcc], eax
mov eax, edi
mov dword [esp + 0xd0], edx
mul dword [esp + 0xd8]
mov dword [esp + 0xc4], eax
mov eax, edi
mov edi, dword [esp + 0x48]
mov dword [esp + 0xc8], edx
mul ebx
add dword [esp + 0x44], eax
adc edi, edx
mov dword [esp + 0x48], edi
cmp edi, edx
ja 0x44cb89
jb 0x44cb82
cmp dword [esp + 0x44], eax
jae 0x44cb89
mov edi, 1
jmp 0x44cb8b
xor edi, edi
mov eax, ebp
mul dword [esp + 0xd8]
xor ebp, ebp
xor ebx, ebx
add eax, dword [esp + 0xc8]
adc edx, ebp
add eax, dword [esp + 0xd0]
adc edx, ebp
add eax, edi
adc edx, ebx
add dword [esp + 0x30], eax
mov eax, dword [esp + 0xcc]
adc dword [esp + 0x34], edx
xor edx, edx
xor edi, edi
add eax, dword [esp + 0xc4]
adc edx, edi
add dword [esp + 0x78], eax
mov eax, dword [esp + 0x7c]
adc eax, edx
mov edx, dword [esp + 0x38]
add edx, 2
add ecx, 0x10
cmp edx, 0x10
mov dword [esp + 0x7c], eax
mov dword [esp + 0x38], edx
jl 0x44cb10
mov edx, dword [esp + 0x78]
mov edi, dword [esp + 0x48]
xor ecx, ecx
add dword [esp + 0x44], ecx
adc edi, edx
mov dword [esp + 0x48], edi
cmp edi, edx
ja 0x44cc16
jb 0x44cc0f
cmp dword [esp + 0x44], ecx
jae 0x44cc16
mov edx, 1
jmp 0x44cc18
xor edx, edx
xor edi, edi
add eax, edx
adc edi, ecx
add dword [esp + 0x30], eax
mov dword [esp + 0x64], ecx
mov dword [esp + 0x68], ecx
adc dword [esp + 0x34], edi
mov edi, dword [esp + 0xec]
mov dword [esp + 0x5c], ecx
mov dword [esp + 0x60], ecx
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], ecx
add edi, 0x18
jmp 0x44cc50
mov ebx, dword [esi + ecx*8]
add ebx, dword [edi - 8]
mov eax, dword [esi + ecx*8 + 4]
adc eax, dword [edi - 4]
mov ebp, dword [esi + ecx*8 + 8]
add ebp, dword [edi]
mov edx, dword [esi + ecx*8 + 0xc]
adc edx, dword [edi + 4]
mov dword [esp + 0xac], eax
mov dword [esp + 0x94], edx
mul ebp
mov dword [esp + 0x54], eax
mov eax, ebx
mov dword [esp + 0x58], edx
mul dword [esp + 0x94]
mov dword [esp + 0x4c], eax
mov eax, ebx
mov ebx, dword [esp + 0x60]
mov dword [esp + 0x50], edx
mul ebp
add dword [esp + 0x5c], eax
adc ebx, edx
mov dword [esp + 0x60], ebx
cmp ebx, edx
ja 0x44ccbb
jb 0x44ccb1
cmp dword [esp + 0x5c], eax
jae 0x44ccbb
mov dword [esp + 0x70], 1
jmp 0x44ccc3
mov dword [esp + 0x70], 0
mov eax, dword [esp + 0xac]
mul dword [esp + 0x94]
mov ebx, eax
xor eax, eax
add ebx, dword [esp + 0x50]
adc edx, eax
add ebx, dword [esp + 0x58]
adc edx, eax
add ebx, dword [esp + 0x70]
adc edx, eax
add dword [esp + 0x10], ebx
mov eax, dword [esp + 0x54]
adc dword [esp + 0x14], edx
xor edx, edx
xor ebx, ebx
add eax, dword [esp + 0x4c]
adc edx, ebx
add dword [esp + 0x64], eax
mov eax, dword [esp + 0x68]
adc eax, edx
add ecx, 2
add edi, 0x10
cmp ecx, 0x10
mov dword [esp + 0x68], eax
jl 0x44cc50
mov ecx, dword [esp + 0x64]
mov edi, dword [esp + 0x60]
xor edx, edx
add dword [esp + 0x5c], edx
adc edi, ecx
mov dword [esp + 0x60], edi
cmp edi, ecx
ja 0x44cd41
jb 0x44cd3a
cmp dword [esp + 0x5c], edx
jae 0x44cd41
mov ecx, 1
jmp 0x44cd43
xor ecx, ecx
xor edx, edx
xor edi, edi
add eax, ecx
adc edi, edx
add eax, dword [esp + 0x10]
lea ecx, [esp + 0x10]
adc edi, dword [esp + 0x14]
mov dword [esp + 0x10], eax
lea eax, [esp + 0x5c]
push eax
push ecx
lea edx, [esp + 0x30]
push edx
lea eax, [esp + 0x48]
push eax
and edi, 0x3fffffff
lea edx, [esp + 0xb0]
lea eax, [esp + 0xa8]
mov dword [esp + 0x24], edi
call fcn.0044bfb0
mov ecx, dword [esp + 0x40]
and dword [esp + 0x44], 0x3fffffff
lea edx, [esp + 0x54]
push edx
lea eax, [esp + 0x44]
push eax
mov dword [esp + 0x48], ecx
lea ecx, [esp + 0x30]
push ecx
lea edx, [esp + 0x3c]
push edx
lea edx, [esp + 0xd0]
lea eax, [esp + 0xd8]
call fcn.0044bfb0
mov eax, dword [esp + 0x8c]
add esp, 0x20
sub esi, 0xffffff80
test eax, eax
jne 0x44cad0
mov ebp, dword [esp + 0x20]
mov ebx, dword [esp + 0x40]
mov ecx, dword [esp + 0xc0]
test ecx, ecx
je 0x44d107
lea eax, [ecx + 0xf]
cdq
and edx, 0xf
xor ebx, ebx
add eax, edx
sar eax, 4
add eax, eax
xor edi, edi
cmp eax, ebx
mov dword [esp + 0x80], ebx
mov dword [esp + 0x84], edi
mov dword [esp + 0x44], ebx
mov dword [esp + 0x48], ebx
mov dword [esp + 0x30], ebx
mov dword [esp + 0x34], ebx
mov dword [esp + 0x6c], ebx
mov dword [esp + 0x38], eax
jle 0x44cf0a
mov edx, dword [esp + 0xec]
mov eax, esi
sub eax, edx
lea ecx, [edx + 8]
mov dword [esp + 0x88], eax
mov eax, dword [esp + 0x6c]
mov edi, dword [esi + eax*8]
mov ebp, dword [esi + eax*8 + 4]
add edi, dword [ecx - 8]
mov eax, dword [esp + 0x88]
mov ebx, dword [ecx + eax]
adc ebp, dword [ecx - 4]
mov eax, dword [ecx + eax + 4]
add ebx, dword [ecx]
adc eax, dword [ecx + 4]
mov dword [esp + 0x74], eax
mov eax, ebp
mul ebx
mov dword [esp + 0x4c], eax
mov eax, edi
mov dword [esp + 0x50], edx
mul dword [esp + 0x74]
mov dword [esp + 0x54], eax
mov eax, edi
mov edi, dword [esp + 0x48]
mov dword [esp + 0x58], edx
mul ebx
add dword [esp + 0x44], eax
adc edi, edx
mov dword [esp + 0x48], edi
cmp edi, edx
ja 0x44cea7
jb 0x44cea0
cmp dword [esp + 0x44], eax
jae 0x44cea7
mov edi, 1
jmp 0x44cea9
xor edi, edi
mov eax, ebp
mul dword [esp + 0x74]
xor ebp, ebp
xor ebx, ebx
add eax, dword [esp + 0x58]
adc edx, ebp
add eax, dword [esp + 0x50]
adc edx, ebp
add eax, edi
adc edx, ebx
add dword [esp + 0x30], eax
mov eax, dword [esp + 0x4c]
adc dword [esp + 0x34], edx
xor edx, edx
xor edi, edi
add eax, dword [esp + 0x54]
adc edx, edi
add dword [esp + 0x80], eax
mov eax, dword [esp + 0x6c]
adc dword [esp + 0x84], edx
add eax, 2
add ecx, 0x10
cmp eax, dword [esp + 0x38]
mov dword [esp + 0x6c], eax
jl 0x44ce40
mov edi, dword [esp + 0x84]
mov eax, dword [esp + 0x38]
add dword [esp + 0x44], ebx
mov ecx, dword [esp + 0x80]
mov edx, dword [esp + 0x48]
adc edx, ecx
mov dword [esp + 0x48], edx
cmp edx, ecx
ja 0x44cf32
jb 0x44cf2b
cmp dword [esp + 0x44], ebx
jae 0x44cf32
mov ecx, 1
jmp 0x44cf34
xor ecx, ecx
xor edx, edx
xor ebp, ebp
add edi, ecx
adc ebp, edx
add dword [esp + 0x30], edi
mov dword [esp + 0x88], ebx
mov dword [esp + 0x8c], ebx
adc dword [esp + 0x34], ebp
xor ecx, ecx
cmp eax, ebx
mov dword [esp + 0x5c], ebx
mov dword [esp + 0x60], ebx
mov dword [esp + 0x10], ebx
mov dword [esp + 0x14], ebx
jle 0x44d04d
mov ebp, dword [esp + 0xec]
add ebp, 0x18
mov edi, dword [esi + ecx*8]
add edi, dword [ebp - 8]
mov eax, dword [esi + ecx*8 + 4]
adc eax, dword [ebp - 4]
mov ebx, dword [esi + ecx*8 + 8]
add ebx, dword [ebp]
mov edx, dword [esi + ecx*8 + 0xc]
adc edx, dword [ebp + 4]
mov dword [esp + 0xac], eax
mov dword [esp + 0x74], edx
mul ebx
mov dword [esp + 0x4c], eax
mov eax, edi
mov dword [esp + 0x50], edx
mul dword [esp + 0x74]
mov dword [esp + 0x54], eax
mov eax, edi
mov edi, dword [esp + 0x60]
mov dword [esp + 0x58], edx
mul ebx
add dword [esp + 0x5c], eax
adc edi, edx
mov dword [esp + 0x60], edi
cmp edi, edx
ja 0x44cfdf
jb 0x44cfd2
cmp dword [esp + 0x5c], eax
jae 0x44cfdf
mov dword [esp + 0x90], 1
jmp 0x44cfea
mov dword [esp + 0x90], 0
mov eax, dword [esp + 0xac]
mul dword [esp + 0x74]
mov edi, eax
xor eax, eax
add edi, dword [esp + 0x58]
adc edx, eax
add edi, dword [esp + 0x50]
adc edx, eax
add edi, dword [esp + 0x90]
adc edx, eax
add dword [esp + 0x10], edi
mov eax, dword [esp + 0x4c]
adc dword [esp + 0x14], edx
xor edx, edx
xor edi, edi
add eax, dword [esp + 0x54]
adc edx, edi
add dword [esp + 0x88], eax
mov eax, dword [esp + 0x8c]
adc eax, edx
add ecx, 2
add ebp, 0x10
cmp ecx, dword [esp + 0x38]
mov dword [esp + 0x8c], eax
jl 0x44cf76
jmp 0x44d054
mov eax, dword [esp + 0x8c]
mov ecx, dword [esp + 0x88]
mov esi, dword [esp + 0x60]
xor edx, edx
add dword [esp + 0x5c], edx
adc esi, ecx
mov dword [esp + 0x60], esi
cmp esi, ecx
ja 0x44d07e
jb 0x44d077
cmp dword [esp + 0x5c], edx
jae 0x44d07e
mov ecx, 1
jmp 0x44d080
xor ecx, ecx
xor edx, edx
xor esi, esi
add eax, dword [esp + 0x10]
adc esi, dword [esp + 0x14]
add eax, ecx
mov dword [esp + 0x10], eax
lea eax, [esp + 0x5c]
push eax
adc esi, edx
lea ecx, [esp + 0x14]
push ecx
lea edx, [esp + 0x30]
push edx
lea eax, [esp + 0x48]
push eax
and esi, 0x3fffffff
lea edx, [esp + 0xb0]
lea eax, [esp + 0xa8]
mov dword [esp + 0x24], esi
call fcn.0044bfb0
mov ecx, dword [esp + 0x40]
and dword [esp + 0x44], 0x3fffffff
lea edx, [esp + 0x54]
push edx
lea eax, [esp + 0x44]
push eax
mov dword [esp + 0x48], ecx
lea ecx, [esp + 0x30]
push ecx
lea edx, [esp + 0x3c]
push edx
lea edx, [esp + 0xd0]
lea eax, [esp + 0xd8]
call fcn.0044bfb0
mov ebp, dword [esp + 0x40]
mov ebx, dword [esp + 0x60]
add esp, 0x20
mov esi, dword [esp + 0xec]
push esi
call fcn.0044c490
mov eax, dword [esp + 0xc4]
mov ecx, dword [esi + 0xcc]
add eax, eax
add eax, eax
add eax, eax
cdq
push edx
mov edi, eax
mov eax, dword [esi + 0xc4]
push edi
push ecx
mov ecx, dword [esi + 0xc0]
mov dword [esp + 0xbc], edx
mov edx, dword [esi + 0xc8]
push edx
mov edx, dword [esp + 0x40]
push eax
mov eax, dword [esp + 0x40]
push ecx
mov ecx, dword [esp + 0x58]
push edx
push eax
push ebx
push ecx
call fcn.0044bd20
mov ecx, dword [esp + 0x114]
mov dword [ecx + 4], edx
mov edx, dword [esp + 0xd8]
push edx
mov dword [ecx], eax
mov eax, dword [esi + 0xbc]
mov ecx, dword [esi + 0xb8]
mov edx, dword [esi + 0xb4]
push edi
push eax
mov eax, dword [esi + 0xb0]
push ecx
mov ecx, dword [esp + 0x58]
push edx
mov edx, dword [esp + 0x58]
push eax
mov eax, dword [esp + 0x68]
push ecx
push edx
push eax
push ebp
call fcn.0044bd20
add esp, 0x54
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xcc
ret
test ecx, ecx
je 0x44d500
lea eax, [ecx + 0xf]
cdq
and edx, 0xf
add eax, edx
xor ebx, ebx
sar eax, 4
add eax, eax
xor ebp, ebp
mov dword [esp + 0x64], ebx
mov dword [esp + 0x68], ebx
mov dword [esp + 0x18], ebx
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x20], ebx
mov dword [esp + 0x24], ebx
mov dword [esp + 0x6c], ebp
mov dword [esp + 0x38], eax
test eax, eax
jle 0x44d2e9
mov edx, esi
sub edx, edi
lea ecx, [edi + 8]
mov dword [esp + 0x80], edx
jmp 0x44d217
mov edx, dword [esp + 0x80]
mov ebx, dword [esi + ebp*8]
add ebx, dword [ecx - 8]
mov eax, dword [esi + ebp*8 + 4]
adc eax, dword [ecx - 4]
mov ebp, dword [ecx + edx]
add ebp, dword [ecx]
mov edx, dword [ecx + edx + 4]
adc edx, dword [ecx + 4]
mov dword [esp + 0xac], eax
mov dword [esp + 0x74], edx
mul ebp
mov dword [esp + 0x4c], eax
mov eax, ebx
mov dword [esp + 0x50], edx
mul dword [esp + 0x74]
mov dword [esp + 0x54], eax
mov eax, ebx
mov ebx, dword [esp + 0x1c]
mov dword [esp + 0x58], edx
mul ebp
add dword [esp + 0x18], eax
adc ebx, edx
mov dword [esp + 0x1c], ebx
cmp ebx, edx
ja 0x44d27e
jb 0x44d271
cmp dword [esp + 0x18], eax
jae 0x44d27e
mov dword [esp + 0x90], 1
jmp 0x44d289
mov dword [esp + 0x90], 0
mov eax, dword [esp + 0xac]
mul dword [esp + 0x74]
mov ebp, dword [esp + 0x6c]
mov ebx, eax
xor eax, eax
add ebx, dword [esp + 0x58]
adc edx, eax
add ebx, dword [esp + 0x50]
adc edx, eax
add ebx, dword [esp + 0x90]
adc edx, eax
add dword [esp + 0x20], ebx
mov eax, dword [esp + 0x4c]
adc dword [esp + 0x24], edx
xor ebx, ebx
xor edx, edx
add eax, dword [esp + 0x54]
adc edx, ebx
add dword [esp + 0x64], eax
mov ebx, dword [esp + 0x68]
adc ebx, edx
add ebp, 2
add ecx, 0x10
cmp ebp, dword [esp + 0x38]
mov dword [esp + 0x68], ebx
mov dword [esp + 0x6c], ebp
jl 0x44d210
mov eax, dword [esp + 0x64]
mov edx, dword [esp + 0x1c]
xor ecx, ecx
add dword [esp + 0x18], ecx
adc edx, eax
mov dword [esp + 0x1c], edx
cmp edx, eax
ja 0x44d310
jb 0x44d309
cmp dword [esp + 0x18], ecx
jae 0x44d310
mov eax, 1
jmp 0x44d312
xor eax, eax
xor edx, edx
add ebx, eax
adc edx, ecx
add dword [esp + 0x20], ebx
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], ecx
adc dword [esp + 0x24], edx
cmp dword [esp + 0x38], ecx
mov dword [esp + 0x28], ecx
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x40], ecx
jle 0x44d40b
lea ebp, [edi + 0x18]
mov ebx, dword [esi + ecx*8]
add ebx, dword [ebp - 8]
mov eax, dword [esi + ecx*8 + 4]
adc eax, dword [ebp - 4]
mov edi, dword [esi + ecx*8 + 8]
add edi, dword [ebp]
mov edx, dword [esi + ecx*8 + 0xc]
adc edx, dword [ebp + 4]
mov dword [esp + 0xac], eax
mov dword [esp + 0x74], edx
mul edi
mov dword [esp + 0x4c], eax
mov dword [esp + 0x50], edx
mov eax, ebx
mul dword [esp + 0x74]
mov dword [esp + 0x54], eax
mov eax, ebx
mov dword [esp + 0x58], edx
mul edi
add dword [esp + 0x28], eax
mov edi, dword [esp + 0x2c]
adc edi, edx
mov dword [esp + 0x2c], edi
cmp edi, edx
ja 0x44d3ae
jb 0x44d3a1
cmp dword [esp + 0x28], eax
jae 0x44d3ae
mov dword [esp + 0x90], 1
jmp 0x44d3b9
mov dword [esp + 0x90], 0
mov eax, dword [esp + 0xac]
mul dword [esp + 0x74]
mov edi, eax
xor eax, eax
add edi, dword [esp + 0x58]
adc edx, eax
add edi, dword [esp + 0x50]
adc edx, eax
add edi, dword [esp + 0x90]
adc edx, eax
add dword [esp + 0x3c], edi
mov eax, dword [esp + 0x4c]
adc dword [esp + 0x40], edx
xor edx, edx
xor edi, edi
add eax, dword [esp + 0x54]
adc edx, edi
add dword [esp + 0x10], eax
adc dword [esp + 0x14], edx
add ecx, 2
add ebp, 0x10
cmp ecx, dword [esp + 0x38]
jl 0x44d345
mov edi, dword [esp + 0x28]
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x2c]
xor edx, edx
add edi, edx
adc ecx, eax
cmp ecx, eax
ja 0x44d42e
jb 0x44d427
cmp edi, edx
jae 0x44d42e
mov edx, 1
jmp 0x44d430
xor edx, edx
mov eax, dword [esp + 0x14]
xor ebx, ebx
xor esi, esi
add eax, edx
mov edx, dword [esp + 0xa4]
adc ebx, esi
add eax, dword [esp + 0x3c]
mov esi, dword [esp + 0xa0]
adc ebx, dword [esp + 0x40]
and ebx, 0x3fffffff
add edi, esi
adc ecx, edx
mov dword [esp + 0x28], edi
mov dword [esp + 0x2c], ecx
cmp ecx, edx
ja 0x44d475
jb 0x44d46e
cmp edi, esi
jae 0x44d475
mov ecx, 1
jmp 0x44d477
xor ecx, ecx
mov ebp, dword [esp + 0x20]
xor edx, edx
add ecx, dword [esp + 0x98]
adc edx, dword [esp + 0x9c]
add eax, ecx
mov ecx, dword [esp + 0xb4]
adc ebx, edx
and dword [esp + 0x24], 0x3fffffff
mov edx, dword [esp + 0xb0]
add dword [esp + 0x18], edx
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x1c]
adc eax, ecx
mov dword [esp + 0x1c], eax
cmp eax, ecx
ja 0x44d4e3
jb 0x44d4c3
cmp dword [esp + 0x18], edx
jae 0x44d4e3
xor ecx, ecx
mov eax, 1
add eax, dword [esp + 0xb8]
adc ecx, dword [esp + 0xbc]
add ebp, eax
adc dword [esp + 0x24], ecx
jmp 0x44d107
xor eax, eax
xor ecx, ecx
add eax, dword [esp + 0xb8]
adc ecx, dword [esp + 0xbc]
add ebp, eax
adc dword [esp + 0x24], ecx
jmp 0x44d107
mov eax, dword [esp + 0xb4]
mov ecx, dword [esp + 0x98]
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0xa0]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0xa4]
mov dword [esp + 0x24], ebx
mov ebx, dword [esp + 0x9c]
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x28], edx
mov dword [esp + 0x2c], eax
mov esi, edi
jmp 0x44d10e
sub esp, 0x60
push ebx
push ebp
push esi
mov esi, dword [esp + 0x7c]
mov eax, dword [esi + 0x9c]
mov ecx, dword [esi + 0x90]
mov ebp, dword [esi + 0x94]
mov edx, dword [esi + 0x98]
mov dword [esp + 0x50], eax
mov eax, dword [esi + 0xa0]
mov dword [esp + 0x3c], eax
mov eax, dword [esi + 0xa4]
mov dword [esp + 0x40], eax
mov eax, dword [esi + 0xa8]
mov dword [esp + 0x44], eax
mov eax, dword [esi + 0xac]
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x74]
mov ebx, eax
and eax, 0x7f
shr ebx, 7
cmp dword [esi + 0x1c0], 0
push edi
mov edi, dword [esp + 0x74]
mov dword [esp + 0x58], ecx
mov dword [esp + 0x5c], ebp
mov dword [esp + 0x50], edx
mov dword [esp + 0x80], eax
je 0x44d620
mov ecx, dword [esi + 0xd0]
mov edx, dword [esi + 0xd4]
mov ebp, dword [esi + 0xdc]
mov dword [esp + 0x18], ecx
mov ecx, dword [esi + 0xd8]
mov dword [esp + 0x1c], edx
mov edx, dword [esi + 0xe0]
mov dword [esp + 0x28], ecx
mov ecx, dword [esi + 0xe4]
mov dword [esp + 0x10], edx
mov edx, dword [esi + 0xe8]
mov dword [esp + 0x14], ecx
mov ecx, dword [esi + 0xec]
mov dword [esp + 0x2c], ebp
mov dword [esp + 0x20], edx
mov dword [esp + 0x24], ecx
jmp 0x44d6f5
test ebx, ebx
je 0x44d860
lea edx, [esp + 0x28]
push edx
lea eax, [esp + 0x1c]
push eax
push 0x10
push esi
push edi
call fcn.0044c160
lea ecx, [esp + 0x34]
push ecx
lea edx, [esp + 0x28]
push edx
push 0x10
lea eax, [esi + 0x10]
push eax
push edi
call fcn.0044c160
and dword [esp + 0x3c], 0x3fffffff
mov ebp, dword [esp + 0x70]
mov ecx, dword [esp + 0x74]
mov eax, dword [esp + 0x4c]
mov edx, dword [esp + 0x38]
add esp, 0x28
add dword [esp + 0x20], ebp
adc eax, ecx
mov dword [esp + 0x24], eax
cmp eax, ecx
ja 0x44d689
jb 0x44d682
cmp dword [esp + 0x20], ebp
jae 0x44d689
mov eax, 1
jmp 0x44d68b
xor eax, eax
mov ebp, dword [esp + 0x2c]
xor ecx, ecx
add eax, dword [esp + 0x40]
adc ecx, dword [esp + 0x44]
add edx, eax
adc dword [esp + 0x14], ecx
and dword [esp + 0x1c], 0x3fffffff
mov ecx, dword [esp + 0x50]
add dword [esp + 0x28], ecx
mov eax, dword [esp + 0x54]
mov dword [esp + 0x10], edx
mov edx, dword [esp + 0x18]
adc ebp, eax
mov dword [esp + 0x2c], ebp
cmp ebp, eax
ja 0x44d6d4
jb 0x44d6cd
cmp dword [esp + 0x28], ecx
jae 0x44d6d4
mov eax, 1
jmp 0x44d6d6
xor eax, eax
xor ecx, ecx
add eax, dword [esp + 0x58]
adc ecx, dword [esp + 0x5c]
add edx, eax
adc dword [esp + 0x1c], ecx
mov eax, dword [esp + 0x80]
sub edi, 0xffffff80
mov dword [esp + 0x18], edx
dec ebx
test ebx, ebx
je 0x44d7ac
lea ebp, [esi + 0x10]
lea ecx, [esp + 0x68]
push ecx
lea edx, [esp + 0x3c]
push edx
push 0x10
push esi
push edi
dec ebx
call fcn.0044c160
lea eax, [esp + 0x74]
push eax
lea ecx, [esp + 0x48]
push ecx
push 0x10
push ebp
push edi
call fcn.0044c160
mov edx, dword [esp + 0x58]
and dword [esp + 0x5c], 0x3fffffff
lea eax, [esp + 0x88]
push eax
mov dword [esp + 0x5c], edx
lea ecx, [esp + 0x5c]
push ecx
lea edx, [esp + 0x78]
push edx
lea eax, [esp + 0x74]
push eax
lea ecx, [esp + 0x58]
push ecx
lea edx, [esp + 0x4c]
push edx
call fcn.0044c270
mov eax, dword [esp + 0x78]
and dword [esp + 0x7c], 0x3fffffff
add esp, 0x40
lea ecx, [esp + 0x68]
push ecx
mov dword [esp + 0x3c], eax
lea edx, [esp + 0x3c]
push edx
lea eax, [esp + 0x58]
push eax
lea ecx, [esp + 0x64]
push ecx
lea edx, [esp + 0x38]
push edx
lea eax, [esp + 0x2c]
push eax
call fcn.0044c270
add esp, 0x18
sub edi, 0xffffff80
test ebx, ebx
jne 0x44d700
mov ebp, dword [esp + 0x2c]
mov eax, dword [esp + 0x80]
test eax, eax
je 0x44d963
add eax, 0xf
cdq
and edx, 0xf
add eax, edx
mov ebx, eax
lea ecx, [esp + 0x68]
push ecx
lea edx, [esp + 0x3c]
push edx
sar ebx, 4
add ebx, ebx
push ebx
push esi
push edi
call fcn.0044c160
lea eax, [esp + 0x74]
push eax
lea ecx, [esp + 0x48]
push ecx
push ebx
lea edx, [esi + 0x10]
push edx
push edi
call fcn.0044c160
mov eax, dword [esp + 0x58]
lea ecx, [esp + 0x88]
push ecx
mov dword [esp + 0x5c], eax
lea edx, [esp + 0x5c]
push edx
lea eax, [esp + 0x78]
push eax
lea ecx, [esp + 0x74]
push ecx
lea edx, [esp + 0x58]
push edx
lea eax, [esp + 0x4c]
mov edi, 0x3fffffff
and dword [esp + 0x70], edi
push eax
call fcn.0044c270
mov ecx, dword [esp + 0x78]
and dword [esp + 0x7c], edi
add esp, 0x40
lea edx, [esp + 0x68]
push edx
mov dword [esp + 0x3c], ecx
lea eax, [esp + 0x3c]
push eax
lea ecx, [esp + 0x58]
push ecx
lea edx, [esp + 0x64]
push edx
lea eax, [esp + 0x38]
push eax
lea ecx, [esp + 0x2c]
push ecx
call fcn.0044c270
mov ebp, dword [esp + 0x44]
add esp, 0x18
jmp 0x44d963
test eax, eax
je 0x44d933
add eax, 0xf
cdq
and edx, 0xf
add eax, edx
mov ebx, eax
lea edx, [esp + 0x28]
push edx
lea eax, [esp + 0x1c]
push eax
sar ebx, 4
add ebx, ebx
push ebx
push esi
push edi
call fcn.0044c160
lea ecx, [esp + 0x34]
push ecx
lea edx, [esp + 0x28]
push edx
push ebx
lea eax, [esi + 0x10]
push eax
push edi
call fcn.0044c160
mov edi, dword [esp + 0x70]
mov eax, dword [esp + 0x74]
mov ecx, dword [esp + 0x4c]
mov edx, dword [esp + 0x38]
mov ebx, 0x3fffffff
and dword [esp + 0x3c], ebx
add esp, 0x28
add dword [esp + 0x20], edi
adc ecx, eax
mov dword [esp + 0x24], ecx
cmp ecx, eax
ja 0x44d8d8
jb 0x44d8d1
cmp dword [esp + 0x20], edi
jae 0x44d8d8
mov eax, 1
jmp 0x44d8da
xor eax, eax
mov ebp, dword [esp + 0x2c]
xor ecx, ecx
add eax, dword [esp + 0x40]
adc ecx, dword [esp + 0x44]
add edx, eax
adc dword [esp + 0x14], ecx
and dword [esp + 0x1c], ebx
mov ecx, dword [esp + 0x50]
add dword [esp + 0x28], ecx
mov eax, dword [esp + 0x54]
mov dword [esp + 0x10], edx
mov edx, dword [esp + 0x18]
adc ebp, eax
cmp ebp, eax
ja 0x44d91b
jb 0x44d914
cmp dword [esp + 0x28], ecx
jae 0x44d91b
mov eax, 1
jmp 0x44d91d
xor eax, eax
xor ecx, ecx
add eax, dword [esp + 0x58]
adc ecx, dword [esp + 0x5c]
add edx, eax
adc dword [esp + 0x1c], ecx
mov dword [esp + 0x18], edx
jmp 0x44d963
mov eax, dword [esp + 0x48]
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x40]
mov dword [esp + 0x28], edx
mov edx, dword [esp + 0x44]
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x4c]
mov dword [esp + 0x1c], ebp
mov ebp, dword [esp + 0x54]
mov dword [esp + 0x14], edx
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], ecx
emms
push esi
call fcn.0044c490
mov eax, dword [esp + 0x84]
mov ecx, dword [esi + 0xc4]
add eax, eax
add eax, eax
add eax, eax
cdq
mov ebx, edx
mov edx, dword [esi + 0xcc]
push ebx
mov edi, eax
mov eax, dword [esi + 0xc8]
push edi
push edx
mov edx, dword [esi + 0xc0]
push eax
mov eax, dword [esp + 0x38]
push ecx
mov ecx, dword [esp + 0x38]
push edx
mov edx, dword [esp + 0x30]
push eax
mov eax, dword [esp + 0x30]
push ecx
push edx
push eax
call fcn.0044bd20
mov ecx, dword [esp + 0xa8]
push ebx
mov dword [ecx], eax
mov dword [ecx + 4], edx
mov ecx, dword [esi + 0xbc]
mov edx, dword [esi + 0xb8]
mov eax, dword [esi + 0xb4]
push edi
push ecx
mov ecx, dword [esi + 0xb0]
push edx
mov edx, dword [esp + 0x64]
push eax
mov eax, dword [esp + 0x5c]
push ecx
mov ecx, dword [esp + 0x5c]
push ebp
push edx
push eax
push ecx
call fcn.0044bd20
add esp, 0x54
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x60
ret
call fcn.0044c3e0
test eax, eax
je 0x44da0e
jmp 0x44d550
jmp 0x44c6b0