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

Disassembly:
sub esp, 0xac
push ebx
push ebp
push esi
push edi
mov edi, ecx
mov ebx, edx
imul eax, ebx, 0x544
xor esi, esi
push 0x2c
push esi
mov ecx, dword [edi + 0x28]
lea ebp, [edi + 0x2c]
mov dword [esp + 0x88], ecx
add ebp, eax
mov eax, dword [edi]
mov dword [esp + 0x7c], eax
xor eax, eax
mov dword [esp + 0x2c], eax
mov eax, dword [edi + 0x24]
mov dword [esp + 0x58], 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 + 0x98]
sub ecx, edx
shr ecx, 1
add ecx, edx
shr ecx, 3
push eax
mov dword [esp + 0x88], ecx
call fcn.10128f30
mov eax, dword [ebp + 0x18]
add esp, 0xc
mov dword [ebp], esi
mov ecx, dword [edi + 0x18]
cdq
xor eax, edx
mov dword [esp + 0xac], 0x7d00
sub eax, edx
mov byte [esp + 0x90], 0
mov edx, dword [edi + 0x1c]
lea ecx, [ecx + ecx*4]
shl ecx, 3
add ecx, edx
mov dword [esp + 0x70], eax
mov dword [esp + 0x84], eax
test ebx, ebx
jne 0x1003726b
cmp edx, ecx
jae 0x10037285
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 0x10037254
jmp 0x10037285
cmp edx, ecx
jae 0x10037285
nop
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 0x10037270
mov eax, dword [esp + 0x80]
cmp eax, dword [esp + 0x88]
jae 0x10037b33
nop dword [eax]
mov ebx, dword [eax]
xor edx, edx
mov eax, 0x7d00
mov dword [esp + 0x10], edx
mov dword [esp + 0x34], eax
mov edi, 0xffff8300
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], eax
xor eax, eax
mov dword [esp + 0x38], eax
mov dword [esp + 0x64], eax
mov dword [esp + 0x2c], eax
mov eax, dword [ebx + 0x24]
mov dword [esp + 0x40], edx
mov dword [esp + 0x3c], edx
mov dword [esp + 0x1c], edi
mov cl, byte [eax + 3]
movsx edx, cl
mov eax, edx
mov dword [esp + 0x28], edi
neg eax
mov dword [esp + 0x4c], 0x7d00
test cl, cl
mov dword [esp + 0x44], edi
mov dword [esp + 0x54], 0x7d00
cmovns eax, edx
mov dword [esp + 0x58], edi
mov dword [esp + 0x68], 0x7d00
mov dword [esp + 0x60], edi
cmp eax, dword [esp + 0x70]
jne 0x10037354
mov cl, byte [ebx + 3]
movsx edx, cl
mov eax, edx
neg eax
test cl, cl
cmovns eax, edx
cmp eax, dword [esp + 0x70]
jne 0x10037354
mov dword [esp + 0x78], ebx
mov ebx, dword [ebx + 0x24]
mov cl, byte [ebx + 3]
movsx edx, cl
mov eax, edx
neg eax
test cl, cl
cmovns eax, edx
cmp eax, dword [esp + 0x70]
jne 0x10037351
cmp ebx, dword [esp + 0x78]
jne 0x10037331
jmp 0x10037354
mov ebx, dword [ebx + 0x20]
mov eax, dword [esp + 0x10]
mov dword [esp + 0x78], ebx
mov byte [esp + 0x32], 0
mov edx, edi
test eax, eax
je 0x100376d3
mov edi, dword [ebx + 0x18]
mov ecx, edi
cmp edi, dword [esp + 0x34]
mov eax, dword [ebx + 0x1c]
cmovge ecx, dword [esp + 0x34]
cmp edi, edx
mov dword [esp + 0x34], ecx
cmovle edi, edx
mov dword [esp + 0x14], ecx
cmp eax, dword [esp + 0x20]
jge 0x1003739a
movzx ecx, word [ebx]
mov dword [esp + 0x20], eax
mov dword [esp + 0x40], ecx
cmp eax, dword [esp + 0x1c]
jle 0x100373ab
movzx ecx, word [ebx]
mov dword [esp + 0x1c], eax
mov dword [esp + 0x3c], ecx
test byte [ebx], 3
mov edx, dword [esp + 0x28]
jne 0x100373ca
mov ecx, dword [esp + 0x18]
cmp eax, ecx
cmovl ecx, eax
cmp eax, edx
mov dword [esp + 0x18], ecx
cmovg edx, eax
mov dword [esp + 0x28], edx
movsx eax, byte [ebx + 3]
cmp eax, dword [esp + 0x84]
jne 0x100373e1
cmp ebx, dword [esp + 0x78]
jne 0x10037b09
mov eax, dword [esp + 0x38]
test eax, eax
je 0x1003762d
mov eax, dword [eax + 0x28]
cmp dword [esi + 0x24], eax
jne 0x1003762d
mov al, byte [eax + 2]
cmp al, byte [ebx + 2]
jne 0x100374df
mov eax, dword [esp + 0x14]
mov ecx, eax
cmp dword [esp + 0x4c], eax
mov eax, dword [esp + 0x54]
cmovl ecx, dword [esp + 0x4c]
cmp dword [esp + 0x44], edi
mov dword [esp + 0x34], ecx
cmovg edi, dword [esp + 0x44]
cmp eax, dword [esp + 0x20]
jge 0x1003743a
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x64]
movzx eax, ax
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x58]
cmp eax, dword [esp + 0x1c]
jle 0x10037453
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x2c]
movzx eax, ax
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x18]
cmp dword [esp + 0x68], eax
mov esi, dword [esp + 0x38]
cmovl eax, dword [esp + 0x68]
cmp dword [esp + 0x60], edx
mov dword [esp + 0x18], eax
lea eax, [edi + ecx]
cmovg edx, dword [esp + 0x60]
sar eax, 1
mov word [esi + 2], ax
mov eax, edi
sub eax, ecx
mov dword [esp + 0x28], edx
sar eax, 1
mov word [esi + 4], ax
mov al, byte [esp + 0x3c]
or al, byte [esp + 0x40]
mov dword [esi + 0x28], ebx
test al, 3
je 0x100374a8
mov eax, edx
sub eax, dword [esp + 0x18]
cmp eax, dword [esp + 0x7c]
jge 0x100374a8
or byte [esi], 1
jmp 0x100374ab
and byte [esi], 0xfe
mov eax, dword [esp + 0x20]
xor edx, edx
movzx ecx, ax
mov eax, dword [esp + 0x1c]
movzx eax, ax
mov word [esi + 8], ax
sub eax, ecx
mov word [esi + 6], cx
mov ecx, dword [esp + 0x38]
mov word [esi + 0xa], ax
dec dword [ebp]
xor esi, esi
mov eax, dword [esp + 0x34]
mov dword [esp + 0x10], edx
jmp 0x100376df
mov eax, dword [esp + 0x58]
sub eax, dword [esp + 0x54]
cdq
mov ecx, eax
mov eax, dword [esp + 0x1c]
sub eax, dword [esp + 0x20]
xor ecx, edx
sub ecx, edx
cdq
xor eax, edx
sub eax, edx
cmp ecx, eax
jle 0x1003754e
mov edx, dword [esp + 0x14]
mov esi, dword [esp + 0x4c]
cmp edx, esi
mov eax, dword [esp + 0x44]
mov ecx, dword [esp + 0x38]
cmovl esi, edx
cmp edi, eax
mov dword [esp + 0x4c], esi
cmovg eax, edi
mov dword [esp + 0x44], eax
add eax, esi
sar eax, 1
mov word [ecx + 2], ax
mov eax, dword [esp + 0x44]
sub eax, esi
mov dword [ecx + 0x28], ebx
sar eax, 1
mov word [ecx + 4], ax
mov eax, edx
dec dword [ebp]
xor edx, edx
mov dword [esp + 0x34], eax
xor esi, esi
mov dword [esp + 0x10], edx
jmp 0x100376df
mov eax, dword [esp + 0x14]
mov ecx, eax
cmp dword [esp + 0x4c], eax
mov dword [esi + 0x28], ebx
cmovl ecx, dword [esp + 0x4c]
cmp dword [esp + 0x44], edi
mov dword [esp + 0x34], ecx
cmovg edi, dword [esp + 0x44]
lea eax, [edi + ecx]
sar eax, 1
mov word [esi + 2], ax
mov eax, edi
sub eax, ecx
sar eax, 1
mov word [esi + 4], ax
mov al, byte [esp + 0x3c]
or al, byte [esp + 0x40]
test al, 3
je 0x1003759d
mov edx, dword [esp + 0x28]
sub edx, dword [esp + 0x18]
cmp edx, dword [esp + 0x7c]
jge 0x1003759d
or byte [esi], 1
mov eax, dword [esp + 0x20]
mov edx, dword [esp + 0x20]
movzx ecx, ax
mov eax, dword [esp + 0x1c]
mov word [esi + 6], cx
movzx eax, ax
mov word [esi + 8], ax
sub eax, ecx
mov ecx, dword [esp + 0x38]
mov word [esi + 0xa], ax
movups xmm0, xmmword [esi]
mov dword [esp + 0x54], edx
mov edx, dword [esp + 0x1c]
movups xmmword [ecx], xmm0
mov dword [esp + 0x58], edx
movups xmm0, xmmword [esi + 0x10]
mov edx, dword [esp + 0x40]
movzx edx, dx
movups xmmword [ecx + 0x10], xmm0
mov dword [esp + 0x64], edx
movq xmm0, qword [esi + 0x20]
movq qword [ecx + 0x20], xmm0
mov eax, dword [esi + 0x28]
mov esi, dword [esp + 0x3c]
movzx edx, si
mov dword [esp + 0x2c], edx
mov edx, dword [esp + 0x18]
mov dword [esp + 0x68], edx
mov edx, dword [esp + 0x28]
mov dword [ecx + 0x28], eax
mov eax, dword [esp + 0x34]
dec dword [ebp]
mov dword [esp + 0x60], edx
xor edx, edx
mov dword [esp + 0x4c], eax
xor esi, esi
mov dword [esp + 0x44], edi
mov dword [esp + 0x10], edx
jmp 0x100376df
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
add eax, edi
sar eax, 1
mov word [esi + 2], ax
mov eax, edi
sub eax, dword [esp + 0x14]
sar eax, 1
mov word [esi + 4], ax
mov al, byte [esp + 0x3c]
or al, byte [esp + 0x40]
mov dword [esi + 0x28], ebx
test al, 3
je 0x10037665
mov eax, edx
sub eax, ecx
cmp eax, dword [esp + 0x7c]
jge 0x10037665
or byte [esi], 1
mov eax, dword [esp + 0x20]
movzx ecx, ax
mov eax, dword [esp + 0x1c]
mov word [esi + 6], cx
movzx eax, ax
mov word [esi + 8], ax
sub eax, ecx
mov word [esi + 0xa], ax
mov ecx, esi
mov esi, dword [esp + 0x20]
mov eax, dword [esp + 0x14]
mov dword [esp + 0x54], esi
mov esi, dword [esp + 0x1c]
mov dword [esp + 0x58], esi
mov esi, dword [esp + 0x40]
movzx ebp, si
mov esi, dword [esp + 0x3c]
mov dword [esp + 0x64], ebp
movzx ebp, si
mov esi, dword [esp + 0x18]
mov dword [esp + 0x60], edx
xor edx, edx
mov dword [esp + 0x68], esi
xor esi, esi
mov dword [esp + 0x38], ecx
mov dword [esp + 0x4c], eax
mov dword [esp + 0x44], edi
mov dword [esp + 0x2c], ebp
mov dword [esp + 0x34], eax
mov dword [esp + 0x10], edx
jmp 0x100376df
mov ecx, dword [esp + 0x38]
mov eax, dword [esp + 0x34]
mov edx, dword [esp + 0x10]
mov ebp, dword [esp + 0x64]
mov dword [esp + 0x6c], edx
mov edx, dword [esp + 0x2c]
movzx edx, dx
mov dword [esp + 0x5c], edx
movzx edx, bp
mov ebp, dword [esp + 0x50]
mov dword [esp + 0x8c], edx
mov edx, dword [esp + 0x3c]
movzx edx, dx
mov dword [esp + 0x48], edx
mov edx, dword [esp + 0x40]
movzx edx, dx
mov dword [esp + 0x14], edx
cmp ebx, dword [esp + 0x78]
jne 0x100377f5
cmp byte [esp + 0x32], 0
jne 0x10037b15
cmp dword [esp + 0x6c], 0
mov edx, dword [esp + 0x10]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x20]
mov dword [esp + 0x20], eax
mov dword [esp + 0x2c], edi
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x2c], eax
mov dword [esp + 0x1c], eax
mov dword [esp + 0x10], edx
mov edx, dword [esp + 0x14]
movzx eax, dx
mov dword [esp + 0x2c], eax
movzx eax, dx
mov edx, dword [esp + 0x48]
mov dword [esp + 0x40], eax
movzx eax, dx
mov dword [esp + 0x48], eax
movzx eax, dx
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x18]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x28]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x44]
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x54]
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0x58]
mov dword [esp + 0x58], eax
mov dword [esp + 0x38], ecx
mov ecx, dword [esp + 0x8c]
movzx eax, cx
mov dword [esp + 0x8c], eax
movzx eax, cx
mov ecx, dword [esp + 0x5c]
mov dword [esp + 0x64], eax
movzx eax, cx
mov dword [esp + 0x5c], eax
movzx eax, cx
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x68]
mov dword [esp + 0x68], eax
mov eax, dword [esp + 0x60]
mov dword [esp + 0x60], eax
mov byte [esp + 0x32], 1
jne 0x10037b09
mov dl, byte [ebx + 3]
movsx ecx, dl
mov eax, ecx
mov byte [esp + 0x33], dl
neg eax
test dl, dl
cmovns eax, ecx
cmp eax, dword [esp + 0x70]
je 0x10037817
cmp ebx, dword [ebx + 0x24]
jne 0x10037b09
mov edi, ebp
mov dword [esp + 0x84], ecx
xor edx, edx
xor esi, esi
mov dword [esp + 0x24], edx
mov eax, dword [edi]
cmp eax, 0x12
jge 0x1003784a
cmp dword [edi + 8], edx
jne 0x10037a34
lea eax, [edi + 0x1c]
mov dword [edi + 4], 0x12
mov dword [edi + 8], eax
jmp 0x10037a34
mov ecx, dword [edi + 4]
mov dword [esp + 0x6c], ecx
cmp eax, ecx
jl 0x10037a34
cmp ecx, 0x2e8ba2e
jge 0x10037bd0
mov ebp, ecx
sar ebp, 2
add ebp, 4
add ebp, ecx
cmp ebp, ecx
jl 0x1003787b
cmp ebp, 0x2e8ba2e
jle 0x10037880
mov ebp, 0x2e8ba2e
mov edx, dword [edi + 8]
lea eax, [edi + 0x1c]
mov dword [esp + 0x5c], edx
cmp edx, eax
jne 0x1003794b
test ebp, ebp
js 0x10037bb4
je 0x1003792b
cmp ebp, 0x2e8ba2e
jg 0x10037b9f
mov eax, dword [esp + 0x74]
mov ecx, eax
imul edx, ebp, 0x2c
mov eax, dword [eax + 4]
call eax
mov ecx, eax
xor edx, edx
test ecx, ecx
mov dword [esp + 0x6c], ecx
mov eax, 0x40
mov dword [esp + 0x14], ecx
cmovne eax, edx
mov edx, eax
mov dword [esp + 0x24], eax
mov dword [esp + 0x10], edx
je 0x10037901
mov dword [esp + 0x14], ecx
mov dword [esp + 0x10], eax
test ebp, ebp
jle 0x10037901
imul eax, ebp, 0x2c
push eax
push 0
push ecx
call fcn.10128f30
mov eax, dword [esp + 0x78]
add esp, 0xc
mov edx, dword [esp + 0x24]
jmp 0x10037933
mov eax, dword [esp + 0x14]
mov dword [esp + 0x24], edx
mov dword [edi + 8], eax
cmp dword [esp + 0x10], esi
jne 0x10037a3f
lea esi, [edi + 0x1c]
mov ecx, 0xc6
mov edi, eax
rep movsd dword es:[edi], dword [esi]
mov edi, dword [esp + 0x50]
jmp 0x10037a31
xor eax, eax
xor edx, edx
mov dword [esp + 0x24], edx
mov dword [edi + 8], eax
lea esi, [edi + 0x1c]
mov ecx, 0xc6
mov edi, eax
rep movsd dword es:[edi], dword [esi]
mov edi, dword [esp + 0x50]
jmp 0x10037a31
mov dword [esp + 0x14], esi
test ecx, ecx
js 0x10037bf7
test ebp, ebp
js 0x10037bf7
je 0x10037a19
cmp ebp, 0x2e8ba2e
jg 0x10037be2
imul eax, ebp, 0x2c
test ecx, ecx
jne 0x100379ad
mov edx, eax
mov eax, dword [esp + 0x74]
mov ecx, eax
mov eax, dword [eax + 4]
call eax
mov edx, eax
xor ecx, ecx
test edx, edx
mov dword [esp + 0x10], edx
mov eax, 0x40
cmovne eax, ecx
mov ecx, edx
mov dword [esp + 0x24], eax
mov dword [esp + 0x14], eax
je 0x10037a06
mov dword [esp + 0x28], edx
mov dword [esp + 0x14], eax
jmp 0x100379d5
push edx
push eax
mov eax, dword [esp + 0x7c]
imul edx, ecx, 0x2c
mov ecx, eax
mov eax, dword [eax + 0xc]
call eax
mov edx, eax
mov dword [esp + 0x28], edx
test edx, edx
je 0x10037bc9
xor eax, eax
mov dword [esp + 0x10], edx
mov dword [esp + 0x24], eax
mov ecx, dword [esp + 0x6c]
cmp ebp, ecx
jle 0x10037a02
mov eax, ebp
sub eax, ecx
imul eax, eax, 0x2c
push eax
imul eax, ecx, 0x2c
push 0
add eax, edx
push eax
call fcn.10128f30
mov eax, dword [esp + 0x1c]
add esp, 0xc
mov edx, dword [esp + 0x24]
mov dword [edi + 8], eax
jmp 0x10037a31
mov ecx, dword [esp + 0x28]
mov eax, dword [esp + 0x14]
mov edx, eax
mov dword [esp + 0x24], edx
mov dword [edi + 8], ecx
test eax, eax
jne 0x10037a3f
jmp 0x10037a31
test edx, edx
je 0x10037a28
mov eax, dword [esp + 0x74]
mov ecx, eax
mov eax, dword [eax + 8]
call eax
xor edx, edx
mov dword [edi + 8], esi
mov dword [esp + 0x24], edx
mov dword [edi + 4], ebp
mov eax, dword [edi]
imul esi, eax, 0x2c
add esi, dword [edi + 8]
inc eax
mov dword [edi], eax
test edx, edx
jne 0x10037c38
movups xmm0, xmmword [esp + 0x90]
mov al, byte [esp + 0x33]
movups xmmword [esi], xmm0
movups xmm0, xmmword [esp + 0xa0]
movups xmmword [esi + 0x10], xmm0
movq xmm0, qword [esp + 0xb0]
movq qword [esi + 0x20], xmm0
mov byte [esi + 1], al
mov dword [esi + 0x24], ebx
mov dword [esi + 0x28], ebx
cmp dword [esp + 0x38], edx
je 0x10037a86
lea eax, [esi - 0x2c]
mov dword [esp + 0x38], eax
movzx eax, word [ebx]
mov ecx, dword [ebx + 0x1c]
mov edx, eax
mov edi, dword [ebx + 0x18]
mov dword [esp + 0x3c], edx
movzx edx, dx
mov dword [esp + 0x34], edi
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x20], ecx
mov dword [esp + 0x40], edx
test al, 3
je 0x10037abe
mov dword [esp + 0x18], 0x7d00
mov dword [esp + 0x28], 0xffff8300
jmp 0x10037ac8
mov eax, ecx
mov dword [esp + 0x28], eax
mov dword [esp + 0x18], eax
mov eax, 1
mov dword [esp + 0x10], eax
cmp ebx, dword [ebx + 0x24]
jne 0x10037afd
mov word [esi + 2], di
test byte [ebx], 3
je 0x10037ae1
or byte [esi], al
movzx eax, word [ebx + 0x1c]
mov word [esi + 6], ax
movzx eax, word [ebx + 0x1c]
mov word [esi + 8], ax
xor eax, eax
mov word [esi + 0xa], ax
xor esi, esi
mov dword [esp + 0x10], eax
mov ebp, dword [esp + 0x50]
mov ebx, dword [ebx + 0x20]
jmp 0x10037361
mov eax, dword [esp + 0x10]
mov ebx, dword [ebx + 0x20]
jmp 0x10037361
mov eax, dword [esp + 0x80]
add eax, 4
mov dword [esp + 0x80], eax
cmp eax, dword [esp + 0x88]
jb 0x100372a0
mov eax, dword [ebp + 8]
test eax, eax
je 0x10037c34
imul edx, dword [ebp], 0x2c
add edx, eax
cmp eax, edx
jae 0x10037c34
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 0x10037c0c
cmp eax, esi
jge 0x10037b85
sub esi, eax
sar esi, 1
add word [ecx], si
mov eax, dword [edi + 0x20]
mov eax, dword [eax + 0x1c]
cmp eax, edx
jle 0x10037c28
sub eax, edx
sar eax, 1
add word [ecx], ax
jmp 0x10037c28
mov dword [edi + 8], esi
mov edx, 0xa
pop edi
pop esi
pop ebp
mov eax, edx
pop ebx
add esp, 0xac
ret
mov dword [edi + 8], esi
mov edx, 6
pop edi
pop esi
pop ebp
mov eax, edx
pop ebx
add esp, 0xac
ret
mov eax, dword [esp + 0x5c]
mov dword [edi + 8], eax
pop edi
pop esi
mov edx, 0x40
pop ebp
mov eax, edx
pop ebx
add esp, 0xac
ret
mov dword [edi + 8], edx
mov edx, 0xa
pop edi
pop esi
pop ebp
mov eax, edx
pop ebx
add esp, 0xac
ret
mov dword [edi + 8], edx
mov edx, 6
pop edi
pop esi
pop ebp
mov eax, edx
pop ebx
add esp, 0xac
ret
cmp eax, esi
jle 0x10037c17
sub eax, esi
sar eax, 1
add word [ecx], ax
mov eax, dword [edi + 0x20]
mov eax, dword [eax + 0x1c]
cmp eax, edx
jge 0x10037c28
sub edx, eax
sar edx, 1
add word [ecx], dx
add ecx, 0x2c
sub ebx, 1
jne 0x10037b60
mov edx, dword [esp + 0x24]
pop edi
pop esi
pop ebp
mov eax, edx
pop ebx
add esp, 0xac
ret