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

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x6c
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x80]
mov dword [esp + 0x24], ecx
mov dword [esp + 0x28], edx
mov ecx, dword [eax + 4]
mov edx, dword [eax]
lea eax, [ecx - 0x80000000]
or eax, edx
je 0x584598
mov edi, dword [esp + 0x80]
mov esi, dword [edi + 0xc]
mov ebx, dword [edi + 8]
lea eax, [esi - 0x80000000]
or eax, ebx
je 0x584598
cmp ecx, esi
jle 0x5849a3
mov edx, dword [esp + 0x80]
mov ebp, dword [edx + 0x20]
test ebp, ebp
jne 0x584600
mov ecx, dword [esp + 0x28]
mov edi, dword [ecx + 8]
mov eax, dword [edi + 0xe0]
test eax, eax
jne 0x5849f0
mov ebp, dword [ecx + 0x40]
mov eax, 0x3e8
mov esi, dword [ecx + 0x44]
imul ebp
mov ebx, edx
mov edx, esi
sar edx, 0x1f
mov ecx, eax
cmp ebx, edx
jg 0x584a12
jge 0x585006
mov ebp, dword [edi + 0x20]
mov eax, 0x3e8
mov esi, dword [edi + 0x24]
imul ebp
mov ebx, edx
mov edx, esi
sar edx, 0x1f
mov ecx, eax
cmp ebx, edx
jge 0x584fd4
lea esi, [esi]
mov ebx, dword [esp + 0x24]
test ebx, ebx
je 0x584fad
mov esi, dword [esp + 0x28]
cmp dword [esi + 0x6c], 3
je 0x584b61
mov ebp, dword [esp + 0x80]
mov ebx, dword [ebp + 8]
mov esi, dword [ebp + 0xc]
mov edx, dword [esp + 0x28]
mov edi, dword [edx + 8]
mov eax, dword [edi + 0xe0]
cmp eax, 1
je case.0x584826.8
test eax, eax
je 0x584814
mov ecx, dword [esp + 0x24]
mov edi, dword [edi + 0x10c]
test ecx, ecx
setne byte [esp + 0x33]
test edi, edi
mov dword [esp + 0x34], edi
je 0x584669
cmp byte [esp + 0x33], 0
jne 0x584801
xor edi, edi
lea eax, [esi - 0x80000000]
or eax, ebx
je 0x584694
mov ebp, dword [esp + 0x80]
mov ecx, dword [ebp + 4]
mov edx, dword [ebp]
lea eax, [ecx - 0x80000000]
or eax, edx
je 0x584694
cmp esi, ecx
jle 0x5849e0
mov edx, dword [esp + 0x28]
mov eax, dword [edx + 0x7c]
sub eax, 0x80000000
or eax, dword [edx + 0x78]
je 0x584a73
cmp dword [esp + 0x34], 1
jle 0x584a8c
mov edi, dword [esp + 0x80]
mov ecx, dword [edi + 4]
mov edx, dword [edi]
lea eax, [ecx - 0x80000000]
or eax, edx
je 0x5847d6
mov eax, dword [esp + 0x34]
mov ebp, dword [esp + 0x28]
add eax, 1
sub eax, 1
mov dword [ebp + 0xa8], edx
mov dword [ebp + 0xac], ecx
jle 0x584746
mov eax, dword [ebp + 0xb4]
sub eax, 0x80000000
or eax, dword [ebp + 0xb0]
jne 0x584746
mov esi, dword [esp + 0x34]
mov ebx, ebp
neg esi
jmp 0x584723
mov ecx, dword [ebx + 0xbc]
add esi, 1
mov edx, dword [ebx + 0xb8]
add ebx, 8
lea eax, [ecx - 0x80000000]
or eax, edx
jne 0x584746
mov edx, dword [esp + 0x80]
mov eax, esi
imul eax, dword [edx + 0x20]
mov ecx, eax
sar ecx, 0x1f
cmp esi, 0xffffffff
mov dword [ebx + 0xb0], eax
mov dword [ebx + 0xb4], ecx
jne 0x584707
mov eax, dword [esp + 0x34]
test eax, eax
jle 0x584772
mov esi, dword [esp + 0x28]
mov ebx, dword [esi + 0xac]
mov edx, dword [esi + 0xb4]
mov ecx, dword [esi + 0xa8]
mov eax, dword [esi + 0xb0]
cmp ebx, edx
jge 0x584842
mov eax, dword [esp + 0x80]
mov ebx, dword [eax + 0xc]
mov ecx, dword [eax + 8]
lea eax, [ebx - 0x80000000]
or eax, ecx
je 0x584b89
cmp dword [esp + 0x34], 1
jle 0x5847cd
mov edi, dword [esp + 0x80]
mov ebp, dword [esp + 0x2c]
mov eax, dword [esp + 0x2c]
mov edi, dword [edi + 0x18]
mov ebp, dword [ebp + edi*4 + 0x64]
mov dword [esp + 0x50], edi
mov dword [esp + 0x54], ebp
mov edx, dword [esp + 0x54]
mov ebp, dword [eax + 0xeec]
mov eax, dword [edx + 0x1c]
sub eax, 0x80000000
or eax, dword [edx + 0x18]
je 0x5848ca
mov eax, dword [esp + 0x28]
cmp dword [eax + 0x7c], ebx
jle 0x58482d
cmp byte [esp + 0x33], 0
je 0x5847f9
mov ecx, dword [esp + 0x80]
mov esi, dword [esp + 0x24]
mov dword [ecx + 0x1c], 0
cmp dword [esi + 0x20], 1
je 0x5848bb
add esp, 0x6c
pop ebx
pop esi
pop edi
pop ebp
ret
mov edi, dword [esp + 0x24]
cmp dword [edi + 0x20], 3
setne al
movzx edi, al
jmp 0x58466b
mov eax, dword [edi + 0xe4]
sub eax, 8
cmp eax, 0x3e
ja case.0x584826.11
jmp dword [eax*4 + 0xb289ac]
jge 0x584bab
mov edx, dword [esp + 0x28]
mov dword [edx + 0x78], ecx
mov dword [edx + 0x7c], ebx
lea esi, [esi]
jmp 0x5847d6
jle 0x584bb9
xor ebp, ebp
mov esi, 1
jmp 0x584864
cmp ecx, eax
jbe 0x584772
lea esi, [esi]
mov ebp, esi
mov esi, edi
mov edi, dword [esp + 0x28]
cmp esi, dword [esp + 0x34]
mov dword [edi + esi*8 + 0xa8], ecx
mov dword [edi + esi*8 + 0xac], ebx
mov dword [edi + ebp*8 + 0xa8], eax
mov dword [edi + ebp*8 + 0xac], edx
je 0x584772
mov ebp, edi
mov ebx, dword [edi + esi*8 + 0xac]
mov ecx, dword [edi + esi*8 + 0xa8]
lea edi, [esi + 1]
mov edx, dword [ebp + edi*8 + 0xac]
mov eax, dword [ebp + edi*8 + 0xa8]
cmp ebx, edx
jg 0x584860
jl 0x584772
jmp 0x584851
mov dword [ecx + 0x1c], 1
add esp, 0x6c
pop ebx
pop esi
pop edi
pop ebp
ret
lea eax, [ebx - 0x80000000]
or eax, ecx
je 0x5847cd
mov esi, dword [esp + 0x54]
mov eax, ecx
mov edx, ebx
sub eax, dword [esi + 0x78]
sbb edx, dword [esi + 0x7c]
test ebp, ebp
mov dword [esi + 0x78], ecx
mov dword [esi + 0x18], eax
mov dword [esi + 0x1c], edx
mov dword [esi + 0x7c], ebx
jne 0x584907
jmp 0x5850bb
mov ebp, dword [ebp + 0x38]
test ebp, ebp
je 0x584984
mov eax, dword [esp + 0x50]
cmp eax, dword [ebp + 0x18]
nop
jne 0x584900
mov edi, dword [ebp + 4]
mov esi, dword [ebp]
lea eax, [edi - 0x80000000]
or eax, esi
je 0x584b7e
mov ecx, dword [ebp + 8]
mov edx, edi
mov eax, esi
mov ebx, dword [ebp + 0xc]
xor eax, ecx
xor edx, ebx
or edx, eax
je 0x584fbf
lea eax, [ebx - 0x80000000]
or eax, ecx
je 0x584956
mov esi, dword [esp + 0x54]
add ecx, dword [esi + 0x18]
adc ebx, dword [esi + 0x1c]
mov dword [ebp + 8], ecx
mov dword [ebp + 0xc], ebx
mov edi, dword [esp + 0x54]
mov eax, dword [edi + 0x5c]
sub eax, 0x80000000
or eax, dword [edi + 0x58]
jne 0x584900
mov ecx, dword [ebp + 4]
mov edx, dword [ebp]
lea eax, [ecx - 0x80000000]
or eax, edx
je 0x584900
mov ebp, dword [ebp + 0x38]
mov dword [edi + 0x58], edx
mov dword [edi + 0x5c], ecx
test ebp, ebp
jne 0x584907
mov ebp, dword [esp + 0x80]
mov eax, dword [esp + 0x28]
mov ebx, dword [ebp + 0xc]
cmp dword [eax + 0x7c], ebx
mov ecx, dword [ebp + 8]
jg 0x5847d6
jmp 0x58482d
jge 0x584bdb
mov ebp, dword [esp + 0x28]
mov ecx, dword [ebp + 0x48]
cmp ecx, 0x3e
jg 0x584598
xor eax, eax
xor edx, edx
test cl, 0x20
sete al
setne dl
shl eax, cl
shl edx, cl
sub ebx, eax
mov eax, dword [esp + 0x80]
sbb esi, edx
mov dword [eax + 8], ebx
mov dword [eax + 0xc], esi
jmp 0x584598
jge 0x584bcb
mov edi, 1
jmp 0x584694
sub eax, 1
jne 0x584600
mov ebp, dword [edi + 0x4c]
mov ecx, dword [esp + 0x80]
cmp ebp, 1
mov ebx, dword [ecx + 0x14]
jle 0x5850f7
mov esi, dword [edi + 0x40]
test esi, esi
je 0x584600
test ebp, ebp
je 0x584600
mov ecx, dword [esp + 0x28]
mov eax, esi
imul dword [ecx + 0x40]
mov dword [esp + 0x10], eax
mov eax, ebp
mov dword [esp + 0x14], edx
imul dword [ecx + 0x44]
mov dword [esp], 1
mov dword [esp + 4], 0
mov dword [esp + 8], eax
mov dword [esp + 0xc], edx
call fcn.0090f0e0
mov ecx, dword [esp + 0x80]
mov dword [ecx + 0x20], eax
jmp 0x584600
mov ecx, dword [esp + 0x80]
or dword [ecx + 0x1c], 1
jmp case.0x584826.11
cmp dword [esp + 0x34], 1
mov dword [edx + 0x78], 0
mov dword [edx + 0x7c], 0
jg 0x5846b4
test edi, edi
je 0x584beb
mov esi, dword [esp + 0x80]
mov ebx, dword [esi + 0xc]
mov ecx, dword [esi + 8]
lea eax, [ebx - 0x80000000]
or eax, ecx
je 0x585085
mov ebp, dword [esp + 0x80]
mov eax, dword [esp + 0x2c]
mov edx, dword [esp + 0x2c]
mov ebp, dword [ebp + 0x18]
mov eax, dword [eax + ebp*4 + 0x64]
mov dword [esp + 0x40], ebp
mov ebp, dword [edx + 0xeec]
mov esi, eax
mov dword [esp + 0x44], eax
mov eax, dword [eax + 0x1c]
sub eax, 0x80000000
or eax, dword [esi + 0x18]
jne 0x584af0
lea eax, [ebx - 0x80000000]
or eax, ecx
jne 0x584e30
lea eax, [ebx - 0x80000000]
or eax, ecx
je 0x585045
mov edi, dword [esp + 0x28]
mov edx, dword [edi + 0x80]
test edx, edx
jne 0x584b1c
mov ebp, dword [esp + 0x80]
mov eax, dword [ebp + 0x20]
mov dword [edi + 0x80], eax
mov edx, dword [esp + 0x28]
mov ecx, dword [esp + 0x80]
mov esi, dword [esp + 0x28]
mov eax, dword [edx + 0x80]
mov edx, eax
sar edx, 0x1f
add eax, dword [ecx + 8]
adc edx, dword [ecx + 0xc]
mov dword [esi + 0x78], eax
mov eax, dword [ecx + 0x20]
mov dword [esi + 0x7c], edx
mov edx, dword [ecx + 4]
mov dword [esi + 0x80], eax
mov eax, dword [ecx]
mov dword [esi + 0x8c], edx
mov dword [esi + 0x88], eax
jmp 0x5846b4
mov edi, dword [esp + 0x80]
mov eax, dword [edi + 0x14]
test eax, eax
jne 0x584d9b
mov ebx, dword [edi + 8]
mov esi, dword [edi + 0xc]
jmp 0x584627
mov ecx, dword [ebp + 8]
mov ebx, dword [ebp + 0xc]
jmp 0x58493c
mov edx, dword [esp + 0x28]
mov esi, dword [esp + 0x80]
mov ecx, dword [edx + 0xa8]
mov ebx, dword [edx + 0xac]
mov dword [esi + 8], ecx
mov dword [esi + 0xc], ebx
jmp 0x58478d
cmp dword [eax + 0x78], ecx
jae 0x5847d6
jmp 0x584833
cmp ecx, eax
nop
lea esi, [esi]
jbe 0x584772
jmp 0x584848
cmp ebx, edx
lea esi, [esi]
jae 0x584694
jmp 0x5849e6
cmp edx, ebx
lea esi, [esi]
jae 0x584598
jmp 0x5849a9
mov edx, dword [esp + 0x80]
mov eax, dword [edx]
mov edx, dword [edx + 4]
mov dword [esp + 0x58], eax
mov dword [esp + 0x5c], edx
mov eax, dword [esp + 0x5c]
sub eax, 0x80000000
or eax, dword [esp + 0x58]
je 0x585061
mov esi, dword [esp + 0x80]
mov esi, dword [esi + 0x20]
test esi, esi
mov dword [esp + 0x20], esi
je 0x584d11
mov ebp, dword [esp + 0x28]
mov eax, esi
mov edx, eax
sar edx, 0x1f
mov dword [esp + 0x60], eax
mov esi, dword [ebp + 0x78]
mov edi, dword [ebp + 0x7c]
mov dword [esp + 0x64], edx
mov eax, esi
mov edx, edi
sub eax, dword [esp + 0x60]
sbb edx, dword [esp + 0x64]
sub eax, dword [esp + 0x58]
sbb edx, dword [esp + 0x5c]
mov ecx, eax
mov ebx, edx
mov ebx, ebx
sar ebx, 0x1f
mov ecx, ebx
mov ebp, ecx
xor ebp, eax
mov dword [esp + 0x38], ebp
mov ebp, ebx
xor ebp, edx
sub dword [esp + 0x38], ecx
mov dword [esp + 0x3c], ebp
sbb dword [esp + 0x3c], ebx
sub esi, dword [esp + 0x58]
sbb edi, dword [esp + 0x5c]
mov ecx, esi
mov ebx, edi
mov ebx, ebx
sar ebx, 0x1f
mov ecx, ebx
mov edx, ebx
mov eax, ecx
xor edx, edi
xor eax, esi
sub eax, ecx
sbb edx, ebx
cmp dword [esp + 0x3c], edx
jg 0x584d11
jl 0x584ca5
cmp dword [esp + 0x38], eax
jae 0x584d11
mov eax, dword [esp + 0x20]
sar eax, 3
mov edx, eax
sar edx, 0x1f
cmp dword [esp + 0x3c], edx
jg 0x584d11
jl 0x584cbf
cmp dword [esp + 0x38], eax
jae 0x584d11
mov eax, dword [esp + 0x60]
add dword [esp + 0x58], eax
mov edx, dword [esp + 0x64]
adc dword [esp + 0x5c], edx
mov eax, dword [esp + 0x5c]
mov edx, dword [esp + 0x58]
mov esi, dword [esp + 0x80]
mov ecx, dword [esp + 0x5c]
sub eax, 0x80000000
or eax, edx
mov dword [esi], edx
mov dword [esi + 4], ecx
jne 0x584d11
mov edx, dword [esp + 0x80]
mov ecx, dword [esp + 0x80]
mov eax, dword [edx + 8]
mov edx, dword [edx + 0xc]
mov dword [esp + 0x58], eax
mov dword [esp + 0x5c], edx
mov dword [ecx], eax
mov dword [ecx + 4], edx
mov esi, dword [esp + 0x80]
mov edi, dword [esp + 0x2c]
mov eax, dword [esp + 0x2c]
mov esi, dword [esi + 0x18]
mov ebp, dword [eax + 0xeec]
mov edi, dword [edi + esi*4 + 0x64]
mov dword [esp + 0x48], esi
mov eax, dword [edi + 0x1c]
mov dword [esp + 0x4c], edi
sub eax, 0x80000000
or eax, dword [edi + 0x18]
jne 0x584d55
mov eax, dword [esp + 0x5c]
sub eax, 0x80000000
or eax, dword [esp + 0x58]
jne 0x584ee4
mov eax, dword [esp + 0x5c]
sub eax, 0x80000000
or eax, dword [esp + 0x58]
je 0x5850a0
mov edi, dword [esp + 0x80]
mov esi, dword [esp + 0x28]
mov eax, dword [edi]
mov edx, dword [edi + 4]
mov dword [edi + 8], eax
mov eax, dword [esp + 0x20]
mov dword [edi + 0xc], edx
mov edx, eax
mov ecx, eax
sar edx, 0x1f
mov ebx, edx
add ecx, dword [edi]
adc ebx, dword [edi + 4]
mov dword [esi + 0x78], ecx
mov dword [esi + 0x7c], ebx
jmp 0x5846b4
mov ebp, eax
mov ecx, dword [esp + 0x24]
sar ebp, 0x1f
mov dword [esp + 0x14], ebp
mov dword [esp + 0x10], eax
mov eax, dword [edi + 0x20]
mov edx, eax
sar edx, 0x1f
mov dword [esp + 8], eax
mov dword [esp + 0xc], edx
mov eax, dword [ecx + 0xb8]
mov edx, dword [ecx + 0xbc]
mov dword [esp], eax
mov dword [esp + 4], edx
call fcn.0090f0e0
mov esi, dword [esp + 0x80]
mov ebx, dword [esi + 4]
mov ecx, dword [esi]
mov edi, eax
mov ebp, edx
lea eax, [ebx - 0x80000000]
or eax, ecx
je 0x584df7
add ecx, edi
adc ebx, edx
mov dword [esi], ecx
mov dword [esi + 4], ebx
mov eax, dword [esp + 0x80]
mov esi, dword [eax + 0xc]
mov ebx, dword [eax + 8]
lea eax, [esi - 0x80000000]
or eax, ebx
je 0x584627
mov ecx, dword [esp + 0x80]
mov eax, edi
mov edx, ebp
add eax, ebx
adc edx, esi
mov ebx, eax
mov esi, edx
mov dword [ecx + 8], eax
mov dword [ecx + 0xc], edx
jmp 0x584627
mov eax, ecx
mov edx, ebx
sub eax, dword [esi + 0x78]
sbb edx, dword [esi + 0x7c]
test ebp, ebp
mov dword [esi + 0x78], ecx
mov dword [esi + 0x18], eax
mov dword [esi + 0x1c], edx
mov dword [esi + 0x7c], ebx
jne 0x584ed6
mov ebp, dword [esp + 0x80]
mov ecx, dword [ebp + 8]
mov ebx, dword [ebp + 0xc]
jmp 0x584af0
mov edi, dword [ebp + 4]
mov esi, dword [ebp]
lea eax, [edi - 0x80000000]
or eax, esi
je 0x58502f
mov ecx, dword [ebp + 8]
mov edx, edi
mov eax, esi
mov ebx, dword [ebp + 0xc]
xor eax, ecx
xor edx, ebx
or edx, eax
je 0x5850cd
lea eax, [ebx - 0x80000000]
or eax, ecx
je 0x584ea4
mov esi, dword [esp + 0x44]
add ecx, dword [esi + 0x18]
adc ebx, dword [esi + 0x1c]
mov dword [ebp + 8], ecx
mov dword [ebp + 0xc], ebx
mov edi, dword [esp + 0x44]
mov eax, dword [edi + 0x5c]
sub eax, 0x80000000
or eax, dword [edi + 0x58]
jne 0x584ecb
mov ecx, dword [ebp + 4]
mov edx, dword [ebp]
lea eax, [ecx - 0x80000000]
or eax, edx
je 0x584ecb
mov dword [edi + 0x58], edx
mov dword [edi + 0x5c], ecx
mov ebp, dword [ebp + 0x38]
test ebp, ebp
je 0x584e4e
mov eax, dword [esp + 0x40]
cmp eax, dword [ebp + 0x18]
jne 0x584ecb
jmp 0x584e60
mov eax, dword [esp + 0x58]
mov ecx, edi
mov edx, dword [esp + 0x5c]
sub eax, dword [edi + 0x78]
sbb edx, dword [edi + 0x7c]
test ebp, ebp
mov esi, dword [esp + 0x58]
mov dword [edi + 0x18], eax
mov dword [edi + 0x1c], edx
mov edi, dword [esp + 0x5c]
mov dword [ecx + 0x78], esi
mov dword [ecx + 0x7c], edi
jne 0x584f9f
mov ecx, dword [esp + 0x80]
mov edx, dword [ecx]
mov ecx, dword [ecx + 4]
mov dword [esp + 0x58], edx
mov dword [esp + 0x5c], ecx
jmp 0x584d55
mov edi, dword [ebp + 4]
mov esi, dword [ebp]
lea eax, [edi - 0x80000000]
or eax, esi
je 0x58503a
mov ecx, dword [ebp + 8]
mov edx, edi
mov eax, esi
mov ebx, dword [ebp + 0xc]
xor eax, ecx
xor edx, ebx
or edx, eax
je 0x5850e2
lea eax, [ebx - 0x80000000]
or eax, ecx
je 0x584f6d
mov edx, dword [esp + 0x4c]
add ecx, dword [edx + 0x18]
adc ebx, dword [edx + 0x1c]
mov dword [ebp + 8], ecx
mov dword [ebp + 0xc], ebx
mov ecx, dword [esp + 0x4c]
mov eax, dword [ecx + 0x5c]
sub eax, 0x80000000
or eax, dword [ecx + 0x58]
jne 0x584f98
mov ecx, dword [ebp + 4]
mov edx, dword [ebp]
lea eax, [ecx - 0x80000000]
or eax, edx
je 0x584f98
mov esi, dword [esp + 0x4c]
mov dword [esi + 0x58], edx
mov dword [esi + 0x5c], ecx
mov ebp, dword [ebp + 0x38]
test ebp, ebp
je 0x585015
mov esi, dword [esp + 0x48]
cmp esi, dword [ebp + 0x18]
jne 0x584f98
jmp 0x584f29
mov edi, dword [esp + 0x80]
mov ebx, dword [edi + 8]
mov esi, dword [edi + 0xc]
jmp 0x584627
mov edx, dword [esp + 0x54]
add esi, dword [edx + 0x18]
adc edi, dword [edx + 0x1c]
mov dword [ebp], esi
mov dword [ebp + 4], edi
jmp 0x58493c
jg 0x584fde
cmp ecx, esi
jbe 0x584600
mov edi, dword [esp + 0x24]
test edi, edi
je 0x584a12
mov edx, dword [esp + 0x24]
mov eax, dword [edx + 0x24]
test eax, eax
je 0x584a12
add eax, 2
add esi, esi
imul ebp, eax
jmp 0x584a12
cmp ecx, esi
ja 0x584a12
nop
jmp 0x5845df
mov ebp, dword [esp + 0x80]
mov edi, dword [ebp]
mov ebp, dword [ebp + 4]
mov dword [esp + 0x58], edi
mov dword [esp + 0x5c], ebp
jmp 0x584d55
mov ecx, dword [ebp + 8]
mov ebx, dword [ebp + 0xc]
jmp 0x584e8a
mov ecx, dword [ebp + 8]
mov ebx, dword [ebp + 0xc]
jmp 0x584f53
mov ecx, dword [esp + 0x28]
mov esi, dword [esp + 0x80]
mov eax, dword [ecx + 0x78]
mov edx, dword [ecx + 0x7c]
mov dword [esi + 8], eax
mov dword [esi + 0xc], edx
jmp 0x584afe
mov ecx, dword [esp + 0x80]
mov eax, dword [ecx + 0xc]
sub eax, 0x80000000
or eax, dword [ecx + 8]
je 0x585140
mov edi, dword [ecx + 0x20]
mov dword [esp + 0x20], edi
jmp 0x584cf0
mov edi, dword [esp + 0x28]
mov ecx, dword [edi + 0x88]
mov ebx, dword [edi + 0x8c]
mov dword [esi + 8], ecx
mov dword [esi + 0xc], ebx
jmp 0x584aaf
mov ecx, dword [esp + 0x28]
mov esi, dword [esp + 0x80]
mov eax, dword [ecx + 0x78]
mov edx, dword [ecx + 0x7c]
mov dword [esi], eax
mov dword [esi + 4], edx
jmp 0x584d68
mov edi, dword [esp + 0x80]
mov ecx, dword [edi + 8]
mov ebx, dword [edi + 0xc]
jmp 0x5847cd
mov edx, dword [esp + 0x44]
add esi, dword [edx + 0x18]
adc edi, dword [edx + 0x1c]
mov dword [ebp], esi
mov dword [ebp + 4], edi
jmp 0x584e8a
mov eax, dword [esp + 0x4c]
add esi, dword [eax + 0x18]
adc edi, dword [eax + 0x1c]
mov dword [ebp], esi
mov dword [ebp + 4], edi
jmp 0x584f53
mov eax, dword [edi + 0xe4]
mov dword [esp], eax
call fcn.005d9eb0
test eax, eax
mov esi, eax
je 0x58515e
mov ecx, dword [edi + 0x44]
test ecx, ecx
je 0x584600
imul esi, ecx
lea edx, [ebx*8]
mov eax, edx
sar edx, 0x1f
idiv esi
mov ebp, eax
test ebp, ebp
js 0x584600
mov edx, dword [esp + 0x28]
mov edi, dword [edx + 8]
jmp 0x584a0f
mov eax, dword [ecx + 0x20]
test eax, eax
je 0x5847d6
mov ebp, dword [esp + 0x80]
mov ebp, dword [ebp + 0x20]
mov dword [esp + 0x20], ebp
jmp 0x584cf0
mov ecx, dword [edi + 4]
test ecx, ecx
je 0x584600
imul ebx, dword [edi + 0x40]
lea edx, [ebx*8]
mov eax, edx
sar edx, 0x1f
idiv ecx
mov ebp, eax
jmp 0x585129