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

Disassembly:
sub esp, 0xa8
push ebx
push ebp
push esi
push edi
mov edi, ecx
mov ebx, edx
imul ebp, ebx, 0x544
xor esi, esi
push 0x2c
push esi
mov eax, dword [edi]
mov ecx, dword [edi + 0x28]
mov dword [esp + 0x6c], eax
add ebp, edi
xor eax, eax
mov dword [esp + 0x88], ecx
mov dword [esp + 0x1c], eax
mov eax, dword [edi + 0x24]
mov dword [esp + 0x70], ebp
lea eax, [ecx + eax*4]
mov dword [esp + 0x90], eax
mov eax, dword [edi + 0xabc]
mov ecx, dword [eax + 0x28]
mov eax, 0x24924925
mul ecx
lea eax, [esp + 0x94]
sub ecx, edx
shr ecx, 1
add ecx, edx
shr ecx, 3
push eax
mov dword [esp + 0x7c], ecx
call fcn.101010f0
mov eax, dword [ebp + 0x44]
add esp, 0xc
mov dword [ebp + 0x2c], esi
mov ecx, dword [edi + 0x18]
cdq
xor eax, edx
mov dword [esp + 0xa8], 0x7d00
sub eax, edx
mov byte [esp + 0x8c], 0
mov edx, dword [edi + 0x1c]
lea ecx, [ecx + ecx*4]
shl ecx, 3
add ecx, edx
mov dword [esp + 0x60], eax
mov dword [esp + 0x84], eax
test ebx, ebx
jne 0x10005a67
cmp edx, ecx
jae 0x10005a85
nop
movsx eax, word [edx + 0xc]
mov dword [edx + 0x18], eax
movsx eax, word [edx + 0xe]
mov dword [edx + 0x1c], eax
add edx, 0x28
cmp edx, ecx
jb 0x10005a50
jmp 0x10005a85
cmp edx, ecx
jae 0x10005a85
nop dword [eax + eax]
movsx eax, word [edx + 0xe]
mov dword [edx + 0x18], eax
movsx eax, word [edx + 0xc]
mov dword [edx + 0x1c], eax
add edx, 0x28
cmp edx, ecx
jb 0x10005a70
mov eax, dword [esp + 0x80]
cmp eax, dword [esp + 0x88]
jae 0x10006373
nop dword [eax]
mov ebp, dword [eax]
xor ebx, ebx
mov edi, 0x7d00
mov dword [esp + 0x18], 0
mov dword [esp + 0x38], edi
mov dword [esp + 0x24], 0xffff8300
mov eax, dword [ebp + 0x24]
mov dword [esp + 0x1c], edi
mov dword [esp + 0x20], 0xffff8300
mov dword [esp + 0x48], 0
mov cl, byte [eax + 3]
movsx edx, cl
mov eax, edx
mov dword [esp + 0x44], 0
neg eax
mov dword [esp + 0x30], edi
test cl, cl
mov dword [esp + 0x28], 0xffff8300
mov dword [esp + 0x34], ebx
cmovns eax, edx
mov dword [esp + 0x4c], edi
mov dword [esp + 0x50], 0xffff8300
mov dword [esp + 0x54], edi
mov dword [esp + 0x58], 0xffff8300
mov dword [esp + 0x74], ebx
mov dword [esp + 0x78], ebx
mov dword [esp + 0x5c], edi
mov dword [esp + 0x7c], 0xffff8300
cmp eax, dword [esp + 0x60]
jne 0x10005b69
mov cl, byte [ebp + 3]
movsx edx, cl
mov eax, edx
neg eax
test cl, cl
cmovns eax, edx
cmp eax, dword [esp + 0x60]
jne 0x10005b69
mov dword [esp + 0x6c], ebp
mov ebp, dword [ebp + 0x24]
mov cl, byte [ebp + 3]
movsx edx, cl
mov eax, edx
neg eax
test cl, cl
cmovns eax, edx
cmp eax, dword [esp + 0x60]
jne 0x10005b66
cmp ebp, dword [esp + 0x6c]
jne 0x10005b46
jmp 0x10005b69
mov ebp, dword [ebp + 0x20]
mov edx, dword [esp + 0x24]
mov eax, ebx
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x6c], ebp
mov byte [esp + 0x2e], bl
nop dword [eax + eax]
mov ebx, dword [esp + 0x48]
movzx ebx, bx
mov dword [esp + 0x40], ebx
mov dword [esp + 0x3c], ecx
test eax, eax
je 0x10005fe1
mov ecx, dword [ebp + 0x18]
cmp ecx, edi
mov eax, ecx
cmovge eax, edi
cmp ecx, edx
mov edi, eax
mov eax, ebx
mov ebx, dword [esp + 0x3c]
cmovle ecx, edx
cmp dword [ebp + 0x1c], ebx
mov edx, ecx
movzx eax, ax
mov dword [esp + 0x24], edx
mov dword [esp + 0x10], edx
movzx edx, word [ebp]
mov ecx, edx
mov dword [esp + 0x38], edi
cmovge ecx, eax
movzx eax, cx
mov ecx, edx
mov dword [esp + 0x3c], eax
mov eax, dword [ebp + 0x1c]
cmp eax, ebx
cmovge eax, ebx
mov ebx, dword [ebp + 0x1c]
cmp ebx, dword [esp + 0x20]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x44]
movzx eax, ax
cmovle ecx, eax
movzx eax, cx
mov ecx, ebx
cmovle ecx, dword [esp + 0x20]
mov ebx, dword [esp + 0x34]
mov dword [esp + 0x40], eax
mov dword [esp + 0x20], ecx
test dl, 3
jne 0x10005c2f
mov eax, dword [ebp + 0x1c]
cmp eax, dword [esp + 0x30]
cmovge eax, dword [esp + 0x30]
mov edx, eax
mov eax, dword [ebp + 0x1c]
mov dword [esp + 0x30], edx
cmp eax, dword [esp + 0x28]
jle 0x10005c2f
mov dword [esp + 0x28], eax
mov dword [esp + 0x30], edx
movsx eax, byte [ebp + 3]
mov edx, dword [esp + 0x3c]
cmp eax, dword [esp + 0x84]
jne 0x10005c5c
mov eax, dword [esp + 0x40]
movzx eax, ax
mov dword [esp + 0x44], eax
movzx eax, dx
mov dword [esp + 0x48], eax
cmp ebp, dword [esp + 0x6c]
jne 0x10005fd5
test ebx, ebx
je 0x10005f1c
mov eax, dword [ebx + 0x28]
cmp dword [esi + 0x24], eax
jne 0x10005f1c
mov al, byte [eax + 2]
cmp al, byte [ebp + 2]
jne 0x10005da1
mov eax, dword [esp + 0x4c]
cmp eax, edi
mov ecx, dword [esp + 0x50]
mov esi, ecx
cmovge eax, edi
mov ebx, dword [esp + 0x7c]
cmp ecx, dword [esp + 0x10]
mov edi, dword [esp + 0x1c]
cmovle esi, dword [esp + 0x10]
cmp dword [esp + 0x54], edi
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x74]
movzx ecx, ax
movzx eax, dx
cmovge ecx, eax
mov dword [esp + 0x24], esi
movzx edx, cx
mov eax, edx
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x54]
cmovge eax, edi
mov edi, eax
mov eax, dword [esp + 0x78]
movzx ecx, ax
mov eax, dword [esp + 0x40]
movzx eax, ax
mov dword [esp + 0x1c], edi
mov edi, dword [esp + 0x20]
cmp dword [esp + 0x58], edi
cmovle ecx, eax
movzx eax, cx
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x58]
cmovle eax, edi
mov edi, eax
mov eax, dword [esp + 0x5c]
cmp eax, ecx
mov dword [esp + 0x20], edi
cmovge eax, ecx
cmp ebx, dword [esp + 0x28]
mov ecx, eax
mov eax, ebx
cmovle eax, dword [esp + 0x28]
mov ebx, dword [esp + 0x34]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x38]
add eax, esi
mov dword [esp + 0x30], ecx
sar eax, 1
mov word [ebx + 2], ax
mov eax, esi
sub eax, dword [esp + 0x38]
sar eax, 1
mov word [ebx + 4], ax
mov al, byte [esp + 0x10]
or al, dl
mov dword [ebx + 0x28], ebp
test al, 3
je 0x10005d54
mov eax, dword [esp + 0x28]
sub eax, ecx
cmp eax, dword [esp + 0x70]
jge 0x10005d54
or byte [ebx], 1
jmp 0x10005d57
and byte [ebx], 0xfe
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x24]
movzx eax, di
mov word [ebx + 8], ax
movzx ecx, cx
sub eax, ecx
mov word [ebx + 6], cx
mov ecx, dword [esp + 0x1c]
mov word [ebx + 0xa], ax
mov eax, dword [esp + 0x18]
movzx edi, ax
mov eax, dword [esp + 0x10]
movzx esi, ax
mov eax, dword [esp + 0x68]
mov dword [esp + 0x44], esi
mov dword [esp + 0x48], edi
dec dword [eax + 0x2c]
xor eax, eax
mov dword [esp + 0x18], eax
xor esi, esi
jmp 0x10005fe1
mov eax, ecx
sub eax, dword [esp + 0x1c]
cdq
mov ecx, eax
mov eax, dword [esp + 0x58]
sub eax, dword [esp + 0x54]
xor ecx, edx
sub ecx, edx
cdq
xor eax, edx
sub eax, edx
cmp eax, ecx
jle 0x10005e2f
mov edx, dword [esp + 0x4c]
cmp edi, edx
mov ecx, dword [esp + 0x10]
mov esi, dword [esp + 0x50]
cmovl edx, edi
cmp ecx, esi
mov dword [esp + 0x38], edi
mov dword [ebx + 0x28], ebp
cmovg esi, ecx
mov dword [esp + 0x4c], edx
mov dword [esp + 0x50], esi
lea eax, [esi + edx]
sar eax, 1
mov word [ebx + 2], ax
mov eax, esi
sub eax, edx
mov edx, ecx
mov ecx, dword [esp + 0x1c]
sar eax, 1
mov word [ebx + 4], ax
mov eax, dword [esp + 0x20]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x40]
movzx esi, ax
mov eax, dword [esp + 0x3c]
movzx edi, ax
mov eax, dword [esp + 0x68]
mov dword [esp + 0x44], esi
mov dword [esp + 0x48], edi
dec dword [eax + 0x2c]
xor eax, eax
mov dword [esp + 0x18], eax
xor esi, esi
jmp 0x10005fe1
mov ecx, dword [esp + 0x4c]
cmp ecx, edi
mov dword [esi + 0x28], ebp
cmovge ecx, edi
mov edi, dword [esp + 0x50]
cmp edi, dword [esp + 0x10]
mov edx, edi
mov dword [esp + 0x38], ecx
cmovle edx, dword [esp + 0x10]
lea eax, [edx + ecx]
sar eax, 1
mov word [esi + 2], ax
mov eax, edx
sub eax, ecx
sar eax, 1
mov word [esi + 4], ax
mov al, byte [esp + 0x40]
or al, byte [esp + 0x3c]
test al, 3
je 0x10005e7e
mov eax, dword [esp + 0x28]
sub eax, dword [esp + 0x30]
cmp eax, dword [esp + 0x70]
jge 0x10005e7e
or byte [esi], 1
mov edi, dword [esp + 0x20]
mov eax, dword [esp + 0x1c]
movzx ecx, ax
mov word [esi + 6], cx
movzx eax, di
mov word [esi + 8], ax
sub eax, ecx
mov word [esi + 0xa], ax
movups xmm0, xmmword [esi]
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x58], edi
movups xmmword [ebx], xmm0
mov dword [esp + 0x20], edi
movups xmm0, xmmword [esi + 0x10]
mov dword [esp + 0x50], edx
mov dword [esp + 0x54], ecx
movups xmmword [ebx + 0x10], xmm0
movq xmm0, qword [esi + 0x20]
movq qword [ebx + 0x20], xmm0
mov eax, dword [esi + 0x28]
mov esi, dword [esp + 0x40]
mov dword [ebx + 0x28], eax
mov eax, dword [esp + 0x38]
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x3c]
movzx ebx, ax
movzx edi, ax
mov eax, dword [esp + 0x68]
mov dword [esp + 0x74], ebx
movzx ebx, si
mov dword [esp + 0x78], ebx
mov ebx, dword [esp + 0x30]
dec dword [eax + 0x2c]
xor eax, eax
movzx esi, si
mov dword [esp + 0x5c], ebx
mov ebx, dword [esp + 0x28]
mov dword [esp + 0x44], esi
xor esi, esi
mov dword [esp + 0x7c], ebx
mov dword [esp + 0x48], edi
mov dword [esp + 0x18], eax
jmp 0x10005fe1
mov edx, dword [esp + 0x10]
mov dword [esi + 0x28], ebp
lea eax, [edx + edi]
sar eax, 1
mov word [esi + 2], ax
mov eax, edx
sub eax, edi
sar eax, 1
mov word [esi + 4], ax
mov al, byte [esp + 0x40]
or al, byte [esp + 0x3c]
test al, 3
je 0x10005f53
mov eax, dword [esp + 0x28]
sub eax, dword [esp + 0x30]
cmp eax, dword [esp + 0x70]
jge 0x10005f53
or byte [esi], 1
mov eax, dword [esp + 0x1c]
movzx ecx, ax
mov eax, dword [esp + 0x20]
movzx eax, ax
mov word [esi + 8], ax
sub eax, ecx
mov word [esi + 0xa], ax
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0x3c]
mov word [esi + 6], cx
mov ecx, dword [esp + 0x20]
movzx ebx, ax
mov dword [esp + 0x34], esi
mov esi, dword [esp + 0x40]
mov dword [esp + 0x74], ebx
movzx ebx, si
movzx eax, ax
mov dword [esp + 0x58], ecx
mov dword [esp + 0x78], ebx
mov ebx, dword [esp + 0x30]
mov dword [esp + 0x20], ecx
movzx ecx, si
mov dword [esp + 0x48], eax
xor eax, eax
mov dword [esp + 0x5c], ebx
xor esi, esi
mov ebx, dword [esp + 0x28]
mov dword [esp + 0x44], ecx
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x4c], edi
mov dword [esp + 0x50], edx
mov dword [esp + 0x7c], ebx
mov dword [esp + 0x38], edi
mov dword [esp + 0x18], eax
jmp 0x10005fe1
mov edx, dword [esp + 0x24]
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x18]
cmp ebp, dword [esp + 0x6c]
jne 0x10005ff7
cmp byte [esp + 0x2e], 0
jne 0x10006351
mov byte [esp + 0x2e], 1
test eax, eax
jne 0x10006345
mov al, byte [ebp + 3]
mov byte [esp + 0x2f], al
movsx edi, al
mov eax, edi
neg eax
cmp byte [esp + 0x2f], 0
cmovge eax, edi
cmp eax, dword [esp + 0x60]
je 0x10006024
cmp ebp, dword [ebp + 0x24]
jne 0x10006341
mov dword [esp + 0x84], edi
xor edx, edx
mov edi, dword [esp + 0x68]
xor esi, esi
mov dword [esp + 0x14], edx
mov eax, dword [edi + 0x2c]
cmp eax, 0x12
jge 0x1000605a
cmp dword [edi + 0x34], edx
jne 0x1000625f
lea eax, [edi + 0x48]
mov dword [edi + 0x30], 0x12
mov dword [edi + 0x34], eax
jmp 0x1000625f
mov ecx, dword [edi + 0x30]
mov dword [esp + 0x44], ecx
cmp eax, ecx
jl 0x1000625f
cmp ecx, 0x2e8ba2e
jge 0x100063db
mov ebx, ecx
sar ebx, 2
add ebx, 4
add ebx, ecx
cmp ebx, ecx
jl 0x1000608b
cmp ebx, 0x2e8ba2e
jle 0x10006090
mov ebx, 0x2e8ba2e
mov eax, dword [edi + 0x34]
lea edx, [edi + 0x48]
mov dword [esp + 0x48], edx
mov dword [esp + 0x18], eax
cmp eax, edx
jne 0x10006170
xor eax, eax
test ebx, ebx
js 0x10006402
je 0x1000614f
cmp ebx, 0x2e8ba2e
jg 0x100063ed
mov eax, dword [esp + 0x64]
mov ecx, eax
imul edx, ebx, 0x2c
mov eax, dword [eax + 4]
call eax
mov ecx, eax
mov edx, 0x40
test ecx, ecx
mov dword [esp + 0x18], ecx
mov eax, esi
mov dword [esp + 0x10], ecx
cmove eax, edx
mov dword [esp + 0x14], eax
mov edx, eax
mov dword [esp + 0x24], edx
test eax, eax
jne 0x10006124
mov dword [esp + 0x10], ecx
mov dword [esp + 0x24], edx
test ecx, ecx
je 0x10006124
mov dword [esp + 0x10], ecx
mov dword [esp + 0x24], eax
test ebx, ebx
jle 0x10006124
imul eax, ebx, 0x2c
push eax
push edx
push ecx
call fcn.101010f0
mov eax, dword [esp + 0x24]
add esp, 0xc
mov edx, dword [esp + 0x14]
jmp 0x10006157
mov eax, dword [esp + 0x10]
mov dword [esp + 0x14], edx
mov dword [edi + 0x34], eax
cmp dword [esp + 0x24], esi
jne 0x1000626c
mov esi, dword [esp + 0x48]
mov ecx, 0xc6
mov edi, eax
rep movsd dword es:[edi], dword [esi]
mov edi, dword [esp + 0x68]
jmp 0x1000625c
xor eax, eax
xor edx, edx
mov dword [esp + 0x14], edx
mov esi, dword [esp + 0x48]
mov ecx, 0xc6
mov dword [edi + 0x34], eax
mov edi, eax
rep movsd dword es:[edi], dword [esi]
mov edi, dword [esp + 0x68]
jmp 0x1000625c
mov dword [esp + 0x10], esi
test ecx, ecx
js 0x10006402
test ebx, ebx
js 0x10006402
je 0x10006242
cmp ebx, 0x2e8ba2e
jg 0x100063ed
imul edx, ebx, 0x2c
test ecx, ecx
jne 0x100061d6
mov eax, dword [esp + 0x64]
mov ecx, eax
mov eax, dword [eax + 4]
call eax
mov edx, eax
mov ecx, 0x40
test edx, edx
mov dword [esp + 0x18], edx
mov eax, esi
cmove eax, ecx
mov ecx, edx
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], eax
test eax, eax
jne 0x1000622f
mov dword [esp + 0x24], ecx
mov dword [esp + 0x10], eax
test edx, edx
je 0x1000622f
jmp 0x100061fe
push eax
mov eax, dword [esp + 0x68]
push edx
imul edx, ecx, 0x2c
mov ecx, eax
mov eax, dword [eax + 0xc]
call eax
mov edx, eax
mov dword [esp + 0x24], edx
test edx, edx
je 0x100063d4
xor eax, eax
mov dword [esp + 0x18], edx
mov dword [esp + 0x14], eax
mov ecx, dword [esp + 0x44]
cmp ebx, ecx
jle 0x1000622b
mov eax, ebx
sub eax, ecx
imul eax, eax, 0x2c
push eax
imul eax, ecx, 0x2c
push 0
add eax, edx
push eax
call fcn.101010f0
mov eax, dword [esp + 0x24]
add esp, 0xc
mov edx, dword [esp + 0x14]
mov dword [edi + 0x34], eax
jmp 0x1000625c
mov ecx, dword [esp + 0x24]
mov eax, dword [esp + 0x10]
mov edx, eax
mov dword [esp + 0x14], edx
mov dword [edi + 0x34], ecx
test eax, eax
jne 0x1000626c
jmp 0x1000625c
test eax, eax
je 0x10006253
mov edx, eax
mov eax, dword [esp + 0x64]
mov ecx, eax
mov eax, dword [eax + 8]
call eax
xor edx, edx
mov dword [edi + 0x34], esi
mov dword [esp + 0x14], edx
mov dword [edi + 0x30], ebx
mov eax, dword [edi + 0x2c]
imul esi, eax, 0x2c
add esi, dword [edi + 0x34]
inc eax
mov dword [edi + 0x2c], eax
test edx, edx
jne 0x10006443
movups xmm0, xmmword [esp + 0x8c]
mov ecx, dword [esp + 0x34]
lea ebx, [esi - 0x2c]
mov al, byte [esp + 0x2f]
test ecx, ecx
movups xmmword [esi], xmm0
cmove ebx, ecx
movups xmm0, xmmword [esp + 0x9c]
mov dword [esp + 0x34], ebx
movups xmmword [esi + 0x10], xmm0
movq xmm0, qword [esp + 0xac]
movq qword [esi + 0x20], xmm0
mov byte [esi + 1], al
mov dword [esi + 0x24], ebp
mov dword [esi + 0x28], ebp
movzx eax, word [ebp]
mov edi, dword [ebp + 0x1c]
mov ebx, eax
mov edx, dword [ebp + 0x18]
mov ecx, edi
mov dword [esp + 0x44], ebx
movzx ebx, bx
mov dword [esp + 0x38], edx
mov dword [esp + 0x20], edi
mov dword [esp + 0x48], ebx
test al, 3
je 0x100062ed
mov dword [esp + 0x30], 0x7d00
mov dword [esp + 0x28], 0xffff8300
jmp 0x100062f7
mov eax, edi
mov dword [esp + 0x28], eax
mov dword [esp + 0x30], eax
mov eax, 1
mov ebx, dword [esp + 0x34]
mov dword [esp + 0x18], eax
cmp ebp, dword [ebp + 0x24]
jne 0x10006345
mov word [esi + 2], dx
test byte [ebp], 3
je 0x10006315
or byte [esi], al
movzx eax, word [ebp + 0x1c]
mov edi, dword [esp + 0x38]
mov word [esi + 6], ax
movzx eax, word [ebp + 0x1c]
mov word [esi + 8], ax
xor eax, eax
mov word [esi + 0xa], ax
xor esi, esi
mov ebp, dword [ebp + 0x20]
mov dword [esp + 0x18], eax
mov dword [esp + 0x34], ebx
jmp 0x10005b80
mov eax, dword [esp + 0x18]
mov ebp, dword [ebp + 0x20]
mov edi, dword [esp + 0x38]
jmp 0x10005b80
mov eax, dword [esp + 0x80]
add eax, 4
mov dword [esp + 0x80], eax
cmp eax, dword [esp + 0x88]
jb 0x10005aa0
mov ebp, dword [esp + 0x68]
mov eax, dword [ebp + 0x34]
test eax, eax
je 0x1000643f
imul edx, dword [ebp + 0x2c], 0x2c
add edx, eax
cmp eax, edx
jae 0x1000643f
sub edx, eax
lea ecx, [eax + 0xa]
dec edx
mov eax, 0xba2e8ba3
mul edx
mov ebx, edx
shr ebx, 5
inc ebx
nop
mov eax, dword [ecx + 0x1a]
mov edi, dword [ecx + 0x1e]
mov esi, dword [eax + 0x1c]
mov eax, dword [eax + 0x24]
mov edx, dword [edi + 0x1c]
mov eax, dword [eax + 0x1c]
cmp esi, edx
jge 0x10006417
cmp eax, esi
jge 0x100063c1
sub esi, eax
sar esi, 1
add word [ecx], si
mov eax, dword [edi + 0x20]
mov eax, dword [eax + 0x1c]
cmp eax, edx
jle 0x10006433
sub eax, edx
sar eax, 1
add word [ecx], ax
jmp 0x10006433
mov eax, dword [esp + 0x18]
mov dword [edi + 0x34], eax
pop edi
pop esi
mov edx, 0x40
pop ebp
mov eax, edx
pop ebx
add esp, 0xa8
ret
mov dword [edi + 0x34], eax
mov edx, 0xa
pop edi
pop esi
pop ebp
mov eax, edx
pop ebx
add esp, 0xa8
ret
mov dword [edi + 0x34], eax
mov edx, 6
pop edi
pop esi
pop ebp
mov eax, edx
pop ebx
add esp, 0xa8
ret
cmp eax, esi
jle 0x10006422
sub eax, esi
sar eax, 1
add word [ecx], ax
mov eax, dword [edi + 0x20]
mov eax, dword [eax + 0x1c]
cmp eax, edx
jge 0x10006433
sub edx, eax
sar edx, 1
add word [ecx], dx
add ecx, 0x2c
sub ebx, 1
jne 0x100063a0
mov edx, dword [esp + 0x14]
pop edi
pop esi
pop ebp
mov eax, edx
pop ebx
add esp, 0xa8
ret