Function at 0x100430f0
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.1019f050
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 0x100431b7
cmp edx, ecx
jae 0x100431d5
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 0x100431a0
jmp 0x100431d5
cmp edx, ecx
jae 0x100431d5
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 0x100431c0
mov eax, dword [esp + 0x80]
cmp eax, dword [esp + 0x88]
jae 0x10043ac3
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 0x100432b9
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 0x100432b9
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 0x100432b6
cmp ebp, dword [esp + 0x6c]
jne 0x10043296
jmp 0x100432b9
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 0x10043731
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 0x1004337f
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 0x1004337f
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 0x100433ac
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 0x10043725
test ebx, ebx
je 0x1004366c
mov eax, dword [ebx + 0x28]
cmp dword [esi + 0x24], eax
jne 0x1004366c
mov al, byte [eax + 2]
cmp al, byte [ebp + 2]
jne 0x100434f1
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 0x100434a4
mov eax, dword [esp + 0x28]
sub eax, ecx
cmp eax, dword [esp + 0x70]
jge 0x100434a4
or byte [ebx], 1
jmp 0x100434a7
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 0x10043731
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 0x1004357f
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 0x10043731
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 0x100435ce
mov eax, dword [esp + 0x28]
sub eax, dword [esp + 0x30]
cmp eax, dword [esp + 0x70]
jge 0x100435ce
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 0x10043731
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 0x100436a3
mov eax, dword [esp + 0x28]
sub eax, dword [esp + 0x30]
cmp eax, dword [esp + 0x70]
jge 0x100436a3
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 0x10043731
mov edx, dword [esp + 0x24]
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x18]
cmp ebp, dword [esp + 0x6c]
jne 0x10043747
cmp byte [esp + 0x2e], 0
jne 0x10043aa1
mov byte [esp + 0x2e], 1
test eax, eax
jne 0x10043a95
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 0x10043774
cmp ebp, dword [ebp + 0x24]
jne 0x10043a91
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 0x100437aa
cmp dword [edi + 0x34], edx
jne 0x100439af
lea eax, [edi + 0x48]
mov dword [edi + 0x30], 0x12
mov dword [edi + 0x34], eax
jmp 0x100439af
mov ecx, dword [edi + 0x30]
mov dword [esp + 0x44], ecx
cmp eax, ecx
jl 0x100439af
cmp ecx, 0x2e8ba2e
jge 0x10043b2b
mov ebx, ecx
sar ebx, 2
add ebx, 4
add ebx, ecx
cmp ebx, ecx
jl 0x100437db
cmp ebx, 0x2e8ba2e
jle 0x100437e0
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 0x100438c0
xor eax, eax
test ebx, ebx
js 0x10043b52
je 0x1004389f
cmp ebx, 0x2e8ba2e
jg 0x10043b3d
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 0x10043874
mov dword [esp + 0x10], ecx
mov dword [esp + 0x24], edx
test ecx, ecx
je 0x10043874
mov dword [esp + 0x10], ecx
mov dword [esp + 0x24], eax
test ebx, ebx
jle 0x10043874
imul eax, ebx, 0x2c
push eax
push edx
push ecx
call fcn.1019f050
mov eax, dword [esp + 0x24]
add esp, 0xc
mov edx, dword [esp + 0x14]
jmp 0x100438a7
mov eax, dword [esp + 0x10]
mov dword [esp + 0x14], edx
mov dword [edi + 0x34], eax
cmp dword [esp + 0x24], esi
jne 0x100439bc
mov esi, dword [esp + 0x48]
mov ecx, 0xc6
mov edi, eax
rep movsd dword es:[edi], dword [esi]
mov edi, dword [esp + 0x68]
jmp 0x100439ac
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 0x100439ac
mov dword [esp + 0x10], esi
test ecx, ecx
js 0x10043b52
test ebx, ebx
js 0x10043b52
je 0x10043992
cmp ebx, 0x2e8ba2e
jg 0x10043b3d
imul edx, ebx, 0x2c
test ecx, ecx
jne 0x10043926
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 0x1004397f
mov dword [esp + 0x24], ecx
mov dword [esp + 0x10], eax
test edx, edx
je 0x1004397f
jmp 0x1004394e
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 0x10043b24
xor eax, eax
mov dword [esp + 0x18], edx
mov dword [esp + 0x14], eax
mov ecx, dword [esp + 0x44]
cmp ebx, ecx
jle 0x1004397b
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.1019f050
mov eax, dword [esp + 0x24]
add esp, 0xc
mov edx, dword [esp + 0x14]
mov dword [edi + 0x34], eax
jmp 0x100439ac
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 0x100439bc
jmp 0x100439ac
test eax, eax
je 0x100439a3
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 0x10043b93
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 0x10043a3d
mov dword [esp + 0x30], 0x7d00
mov dword [esp + 0x28], 0xffff8300
jmp 0x10043a47
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 0x10043a95
mov word [esi + 2], dx
test byte [ebp], 3
je 0x10043a65
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 0x100432d0
mov eax, dword [esp + 0x18]
mov ebp, dword [ebp + 0x20]
mov edi, dword [esp + 0x38]
jmp 0x100432d0
mov eax, dword [esp + 0x80]
add eax, 4
mov dword [esp + 0x80], eax
cmp eax, dword [esp + 0x88]
jb 0x100431f0
mov ebp, dword [esp + 0x68]
mov eax, dword [ebp + 0x34]
test eax, eax
je 0x10043b8f
imul edx, dword [ebp + 0x2c], 0x2c
add edx, eax
cmp eax, edx
jae 0x10043b8f
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 0x10043b67
cmp eax, esi
jge 0x10043b11
sub esi, eax
sar esi, 1
add word [ecx], si
mov eax, dword [edi + 0x20]
mov eax, dword [eax + 0x1c]
cmp eax, edx
jle 0x10043b83
sub eax, edx
sar eax, 1
add word [ecx], ax
jmp 0x10043b83
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 0x10043b72
sub eax, esi
sar eax, 1
add word [ecx], ax
mov eax, dword [edi + 0x20]
mov eax, dword [eax + 0x1c]
cmp eax, edx
jge 0x10043b83
sub edx, eax
sar edx, 1
add word [ecx], dx
add ecx, 0x2c
sub ebx, 1
jne 0x10043af0
mov edx, dword [esp + 0x14]
pop edi
pop esi
pop ebp
mov eax, edx
pop ebx
add esp, 0xa8
ret