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

Disassembly:
sub esp, 0x60
push ebx
push ebp
push esi
push edi
mov edi, dword [esp + 0x7c]
xor esi, esi
mov dword [esp + 0x18], esi
mov dword [esp + 0x28], 1
mov dword [esp + 0x38], esi
mov dword [esp + 0x14], esi
mov dword [esp + 0x3c], esi
mov dword [esp + 0x40], edi
call fcn.0043fa50
cmp ax, si
je 0x4130a8
and eax, 0xffff
lea eax, [eax + eax*4]
lea eax, [eax + eax*4]
shl eax, 2
push eax
call dword [sym.imp.KERNEL32.dll_Sleep]
cmp edi, 1
jle 0x4139b5
mov ecx, dword [esp + 0x84]
mov esi, dword [esp + 0x18]
mov ebp, dword [esp + 0x78]
mov edx, 2
jmp 0x4130db
mov ebp, dword [esp + 0x78]
mov esi, dword [esp + 0x18]
mov ecx, dword [esp + 0x84]
mov edx, 2
mov al, byte [esi + ebp + 1]
cmp al, 0x20
jne 0x41314d
test ecx, ecx
je 0x4130f8
mov eax, dword [esp + 0x14]
mov word [ecx + eax*2 + 2], 0x20
mov word [ecx + eax*2], 0x20
mov edi, dword [esp + 0x14]
mov ecx, dword [esp + 0x88]
add edi, edx
add esi, edx
test ecx, ecx
mov dword [esp + 0x14], edi
mov dword [esp + 0x18], esi
je 0x41312e
mov ebx, dword [esp + 0x74]
mov eax, dword [esp + 0x8c]
xor edi, edi
sub ebp, ebx
mov di, word [eax]
add ebp, esi
mov word [ecx + edi*2], bp
inc word [eax]
mov eax, dword [esp + 0x7c]
mov ebp, dword [esp + 0x14]
sub eax, edx
mov dword [esp + 0x28], 1
mov dword [esp + 0x7c], eax
mov dword [esp + 0x38], esi
jmp 0x4139a8
mov ecx, eax
and ecx, 0xff
mov dl, byte [ecx + 0x4e71b8]
test dl, dl
jne 0x413180
mov ecx, dword [esp + 0x28]
test ecx, ecx
je 0x413180
push 0x4e78bc
push eax
call fcn.0040eb70
add esp, 8
test eax, eax
jne 0x413180
mov edi, 1
jmp 0x413182
xor edi, edi
mov eax, dword [esp + 0x7c]
lea edx, [esi + 3]
cmp edx, eax
mov dword [esp + 0x1c], edi
jge 0x4131cb
mov al, byte [esi + ebp + 3]
mov ecx, eax
and ecx, 0xff
mov dl, byte [ecx + 0x4e70b8]
test dl, dl
jne 0x4131db
xor edx, edx
mov dl, byte [esi + ebp + 1]
mov cl, byte [edx + 0x4e72b8]
test cl, cl
je 0x4131e4
push 0x4e78bc
push eax
call fcn.0040eb70
add esp, 8
test eax, eax
jne 0x4131e4
jmp 0x4131db
xor eax, eax
mov al, byte [esi + ebp + 1]
mov cl, byte [eax + 0x4e72b8]
test cl, cl
je 0x4131e4
mov edi, 1
mov dword [esp + 0x1c], edi
mov al, byte [esi + ebp + 1]
xor bx, bx
mov bl, al
cmp al, 0x81
mov dword [esp + 0x20], ebx
jae 0x413203
cmp al, 0x20
je 0x413203
add ebx, 0x100
mov dword [esp + 0x20], ebx
and eax, 0xff
mov cl, byte [eax + 0x4e71b8]
test cl, cl
jne 0x41323c
push 0x4e78bc
push ebx
call fcn.0040eb70
add esp, 8
test eax, eax
je 0x41322c
mov eax, dword [esp + 0x28]
test eax, eax
je 0x41323c
xor ebp, ebp
mov dword [esp + 0x1c], 1
mov dword [esp + 0x2c], ebp
jmp 0x41329e
mov eax, dword [esp + 0x7c]
cmp eax, 2
jle 0x413274
test edi, edi
jne 0x41327d
cmp eax, 3
jle 0x41327d
mov ecx, dword [esp + 0x38]
mov edx, esi
and ecx, 0xffff
sub edx, ecx
cmp edx, 0x2e
jge 0x413274
mov eax, dword [esp + 0x40]
push esi
push eax
push ebp
call fcn.00412fd0
add esp, 0xc
test eax, eax
je 0x413279
mov edi, 1
mov dword [esp + 0x1c], edi
mov eax, dword [esp + 0x28]
mov ebp, edi
test eax, eax
je 0x413293
neg ebp
sbb ebp, ebp
and ebp, 0xfffffffd
add ebp, 3
jmp 0x41329a
neg ebp
sbb ebp, ebp
add ebp, 2
mov dword [esp + 0x2c], ebp
mov ecx, dword [esp + 0x78]
mov byte [esp + 0x13], 0
mov al, byte [ecx + esi + 1]
cmp al, 0xa5
je 0x4132bf
mov edx, eax
and edx, 0xff
cmp edx, 0x12f
jne 0x4132dd
cmp bp, 2
je 0x4132cb
cmp bp, 3
jne 0x4132dd
mov ebx, 0xa4
mov byte [esp + 0x13], al
mov byte [ecx + esi + 1], 0xa4
mov dword [esp + 0x20], ebx
push 0xffffffffffffffff
push ebp
push ebx
call fcn.004125b0
mov dword [esp + 0x34], eax
and eax, 0xffff
add esp, 0xc
lea ecx, [eax + eax*4]
lea esi, [eax + ecx*2]
mov ecx, dword [0x4fef8c]
shl esi, 2
cmp word [esi + ecx], bx
lea edi, [esi + ecx]
jne 0x413413
mov ax, word [edi + 2]
cmp ax, bp
je 0x413321
cmp ax, 4
jne 0x4133ea
mov eax, dword [edi + 0x10]
test eax, eax
je 0x413413
cmp bp, 1
jne 0x413374
cmp word [edi + 0x14], 0
je 0x413374
mov edx, dword [esp + 0x14]
mov ebx, dword [esp + 0x84]
inc edx
lea edi, [esi + ecx]
push edx
push ebx
call fcn.004126f0
mov ecx, eax
xor eax, eax
add esp, 8
mov ax, word [ebx + ecx*2]
mov ecx, dword [0x4fef8c]
lea edx, [eax + eax*4]
lea eax, [eax + edx*2]
mov dx, word [ecx + eax*4 - 0x5aa]
cmp dx, word [edi + 0x14]
jne 0x4133ea
mov eax, dword [edi + 0x10]
xor ebx, ebx
cmp word [eax], 0x80
je 0x4133de
cmp bp, 1
jne 0x41339a
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x78]
push ecx
push edx
call fcn.00412660
add esp, 8
jmp 0x4133b1
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x40]
mov edx, dword [esp + 0x78]
push eax
push ecx
push edx
call fcn.004126a0
add esp, 0xc
mov ecx, dword [0x4fef8c]
xor edi, edi
mov edx, dword [esi + ecx + 0x10]
mov di, word [edx + ebx*2]
and edi, 0x800000ff
jns 0x4133d1
dec edi
or edi, 0xffffff00
inc edi
cmp edi, eax
je 0x4133de
inc ebx
cmp word [edx + ebx*2], 0x80
jne 0x413380
mov eax, dword [esi + ecx + 0x10]
cmp word [eax + ebx*2], 0x80
jne 0x413413
mov eax, dword [esp + 0x28]
inc eax
mov dword [esp + 0x28], eax
and eax, 0xffff
lea edx, [eax + eax*4]
lea esi, [eax + edx*2]
mov ax, word [esp + 0x20]
shl esi, 2
cmp word [esi + ecx], ax
lea edi, [esi + ecx]
je 0x41330e
mov eax, dword [esp + 0x28]
and eax, 0xffff
lea edx, [eax + eax*4]
lea ebx, [eax + edx*2]
mov ax, word [esp + 0x20]
shl ebx, 2
cmp word [ebx + ecx], ax
jne 0x41364a
mov ax, word [ebx + ecx + 2]
cmp ax, bp
je 0x413448
cmp ax, 4
jne 0x41364a
mov ebp, dword [esp + 0x14]
test ebp, ebp
jle 0x4135ea
dec ebp
cmp ebp, 2
mov dword [esp + 0x24], ebp
jl 0x4134d4
mov esi, dword [esp + 0x84]
lea eax, [esi + ebp*2]
cmp word [eax], 0x20
jne 0x41347f
sub ebp, 2
sub eax, 4
cmp ebp, 2
jge 0x413468
mov dword [esp + 0x24], ebp
jmp 0x4134d4
cmp ebp, 2
mov dword [esp + 0x24], ebp
jl 0x4134d4
lea esi, [esi + ebp*2]
jmp 0x413493
mov ecx, dword [0x4fef8c]
mov ax, word [esi]
cmp ax, 0x20
je 0x4134d4
and eax, 0xffff
push 0x4e78bc
sub eax, 0x21
lea edx, [eax + eax*4]
lea eax, [eax + edx*2]
mov cl, byte [ecx + eax*4]
push ecx
call fcn.0040eb70
add esp, 8
test eax, eax
je 0x4134ce
sub ebp, 2
sub esi, 4
cmp ebp, 2
mov dword [esp + 0x24], ebp
jge 0x41348d
mov ecx, dword [0x4fef8c]
mov edi, dword [esp + 0x84]
test ebp, ebp
jl 0x4135f1
cmp word [edi + ebp*2], 0x20
je 0x4135f1
mov dl, byte [ebx + ecx]
push 0x4e78bc
push edx
call fcn.0040eb70
add esp, 8
test eax, eax
jne 0x413662
mov ebx, dword [esp + 0x2c]
cmp bx, 3
je 0x413662
mov dx, word [edi + ebp*2]
mov eax, edx
and eax, 0xffff
sub eax, 0x21
lea ecx, [eax + eax*4]
lea eax, [eax + ecx*2]
mov ecx, dword [0x4fef8c]
mov si, word [ecx + eax*4 + 0x14]
lea eax, [ecx + eax*4]
test si, si
je 0x4135f1
cmp word [eax + 2], 1
je 0x4135f1
cmp si, bx
je 0x4135f1
mov esi, ecx
sub esi, 0x4e7928
neg esi
sbb esi, esi
add edx, 0xffffffe0
and esi, 0xfffffffc
mov dword [esp + 0x30], edx
add esi, 0x443
cmp dx, si
mov dword [esp + 0x34], esi
jae 0x4135f1
mov eax, edx
xor ebx, ebx
and eax, 0xffff
lea edi, [eax + eax*4]
lea eax, [eax + edi*2]
shl eax, 2
mov edi, dword [eax + ecx + 0x10]
test edi, edi
je 0x413602
cmp word [edi], 0x80
je 0x4135d4
mov edx, edi
mov esi, edi
mov dx, word [edx]
cmp dx, word [esp + 0x20]
jne 0x4135b9
mov dx, word [eax + ecx + 0x14]
test dx, dx
je 0x4135c8
cmp dx, word [esp + 0x2c]
je 0x4135c8
mov dx, word [esi + 2]
add esi, 2
inc ebx
cmp dx, 0x80
jne 0x4135a1
mov ebp, dword [esp + 0x24]
mov edx, dword [esp + 0x30]
mov esi, dword [esp + 0x34]
test edi, edi
je 0x413602
cmp word [edi + ebx*2], 0x80
jne 0x413602
inc edx
cmp dx, si
mov dword [esp + 0x30], edx
jb 0x413579
mov edi, dword [esp + 0x84]
mov esi, dword [0x64a0a8]
cmp esi, 2
jle 0x41366a
lea esi, [esi + esi*2 - 6]
jmp 0x41366c
mov eax, dword [0x64a0a8]
cmp eax, 2
jle 0x413612
lea esi, [eax + eax*2 - 6]
jmp 0x413614
xor esi, esi
mov eax, edx
and eax, 0xffff
lea edi, [eax + eax*4]
lea eax, [eax + edi*2]
mov cx, word [ecx + eax*4 + 4]
mov eax, dword [esp + 0x84]
add cx, si
add ecx, 0xea
add edx, 0x21
mov word [eax + ebp*2 - 2], cx
mov word [eax + ebp*2], dx
mov ecx, dword [0x4fef8c]
jmp 0x4135ea
mov eax, ecx
sub eax, 0x4e7928
neg eax
sbb eax, eax
and al, 0xfc
add eax, 0x442
mov dword [esp + 0x28], eax
jmp 0x4135ea
mov ecx, dword [0x4fef8c]
jmp 0x4135f1
xor esi, esi
mov edx, dword [esp + 0x28]
mov ebp, dword [esp + 0x14]
mov eax, edx
add edx, 0x21
and eax, 0xffff
lea ebx, [eax + eax*4]
lea eax, [eax + ebx*2]
mov cx, word [ecx + eax*4 + 4]
mov al, byte [esp + 0x13]
add cx, si
add ecx, 0xea
mov word [edi + ebp*2], cx
mov ecx, dword [esp + 0x18]
test al, al
mov word [edi + ebp*2 + 2], dx
je 0x4136af
mov edx, dword [esp + 0x78]
mov byte [edx + ecx + 1], al
mov esi, dword [esp + 0x7c]
mov edx, dword [esp + 0x88]
add ebp, 2
sub esi, 2
add ecx, 2
mov dword [esp + 0x14], ebp
test edx, edx
mov dword [esp + 0x7c], esi
mov dword [esp + 0x18], ecx
je 0x4136f4
mov eax, dword [esp + 0x78]
mov ebx, dword [esp + 0x74]
mov esi, dword [esp + 0x8c]
sub eax, ebx
xor ebx, ebx
add eax, ecx
mov bx, word [esi]
mov word [edx + ebx*2], ax
inc word [esi]
jmp 0x4136fb
mov esi, dword [esp + 0x8c]
test edi, edi
je 0x41374f
xor eax, eax
mov ax, word [edi + ebp*2 - 2]
sub eax, 0x21
lea ebx, [eax + eax*4]
lea eax, [eax + ebx*2]
mov ebx, dword [0x4fef8c]
cmp word [ebx + eax*4], 0xf6
jne 0x41374f
mov ax, word [edi + ebp*2 - 4]
mov word [edi + ebp*2], ax
mov ax, word [edi + ebp*2 - 2]
inc ax
mov word [edi + ebp*2 + 2], ax
add ebp, 2
test edx, edx
mov dword [esp + 0x14], ebp
je 0x41374f
xor eax, eax
mov ax, word [esi]
lea eax, [edx + eax*2]
mov dx, word [eax - 2]
mov word [eax], dx
inc word [esi]
mov eax, dword [esp + 0x1c]
test eax, eax
mov dword [esp + 0x28], eax
je 0x4139a8
mov dword [esp + 0x38], ecx
mov ecx, dword [esp + 0x3c]
lea eax, [ebp - 1]
or ebx, 0xffffffff
cmp eax, ecx
mov dword [esp + 0x20], ebx
mov dword [esp + 0x1c], eax
jle 0x4139a4
lea ecx, [edi + eax*2]
mov dword [esp + 0x24], ecx
mov eax, dword [esp + 0x24]
xor edx, edx
mov dx, word [eax - 2]
sub edx, 0x80
cmp edx, 0x6a
jl 0x413968
mov ecx, eax
cmp word [ecx], 0x20
je 0x413904
mov edx, dword [esp + 0x1c]
push edx
push edi
call fcn.004126f0
mov esi, eax
mov eax, dword [esp + 0x24]
add esp, 8
cmp eax, 4
jle 0x4138af
cmp word [edi + esi*2], 0x20
je 0x4138af
mov ecx, dword [esp + 0x24]
xor eax, eax
push 0x4e775c
mov ax, word [ecx]
mov ecx, dword [0x4fef8c]
sub eax, 0x21
lea edx, [eax + eax*4]
lea eax, [eax + edx*2]
mov dl, byte [ecx + eax*4]
push edx
call fcn.0040eb70
add esp, 8
test eax, eax
je 0x4138af
xor eax, eax
push 0x4e7584
mov ax, word [edi + esi*2]
sub eax, 0x21
lea ecx, [eax + eax*4]
lea edx, [eax + ecx*2]
mov eax, dword [0x4fef8c]
mov cl, byte [eax + edx*4]
push ecx
call fcn.0040eb70
add esp, 8
test eax, eax
je 0x4138af
push esi
push edi
call fcn.004126f0
add esp, 8
cmp eax, 0xffffffff
je 0x413968
mov cx, word [edi + eax*2]
cmp cx, 0x20
je 0x4138af
and ecx, 0xffff
lea edx, [ecx + ecx*4]
lea ecx, [ecx + edx*2]
mov edx, dword [0x4fef8c]
mov cx, word [edx + ecx*4 - 0x5aa]
cmp cx, 3
je 0x413872
cmp cx, 2
jne 0x4138af
push eax
push edi
call fcn.00412eb0
mov eax, dword [esp + 0x28]
add esp, 8
cmp ebx, 0xffffffff
jne 0x41388c
cmp eax, 0xffffffff
je 0x41389f
jmp 0x413893
cmp eax, 0xffffffff
jne 0x413893
mov eax, ebx
push ebp
push eax
push ebx
push edi
call fcn.004127c0
add esp, 0x10
mov dword [esp + 0x20], 0xffffffff
or ebx, 0xffffffff
jmp 0x413968
mov esi, dword [esp + 0x24]
xor eax, eax
push 0x4e78bc
mov ax, word [esi]
sub eax, 0x21
lea ecx, [eax + eax*4]
lea edx, [eax + ecx*2]
mov eax, dword [0x4fef8c]
mov cl, byte [eax + edx*4]
push ecx
call fcn.0040eb70
add esp, 8
test eax, eax
jne 0x413968
mov ax, word [esi]
mov ecx, dword [0x4fef8c]
sub eax, 0x21
push 0x4e73b8
lea edx, [eax + eax*4]
lea eax, [eax + edx*2]
mov dl, byte [ecx + eax*4]
push edx
call fcn.0040eb70
add esp, 8
jmp 0x41390a
mov esi, dword [esp + 0x24]
xor eax, eax
cmp ebx, 0xffffffff
jne 0x413919
test eax, eax
je 0x413968
mov ebx, dword [esp + 0x1c]
jmp 0x413968
mov ecx, dword [esp + 0x20]
cmp ecx, 0xffffffff
jne 0x413941
test eax, eax
jne 0x413937
push ebp
push ebx
push ebx
push edi
call fcn.004127c0
add esp, 0x10
or ebx, 0xffffffff
jmp 0x413968
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x20], eax
jmp 0x413968
test eax, eax
je 0x413955
cmp word [esi], 0x20
je 0x413955
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x20], ecx
jmp 0x413968
push ebp
push ecx
push ebx
push edi
call fcn.004127c0
add esp, 0x10
or ebx, 0xffffffff
mov dword [esp + 0x20], ebx
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x24]
mov ecx, dword [esp + 0x3c]
sub eax, 2
sub edx, 4
cmp eax, ecx
mov dword [esp + 0x1c], eax
mov dword [esp + 0x24], edx
jg 0x413784
cmp ebx, 0xffffffff
je 0x4139a4
mov eax, dword [esp + 0x20]
cmp eax, 0xffffffff
je 0x4139a4
push ebp
push eax
push ebx
push edi
call fcn.004127c0
add esp, 0x10
mov dword [esp + 0x3c], ebp
cmp dword [esp + 0x7c], 1
jg 0x4130c7
jmp 0x4139b9
mov ebp, dword [esp + 0x14]
mov eax, dword [esp + 0x84]
test eax, eax
je 0x413c42
mov ebp, eax
mov eax, dword [esp + 0x14]
mov ecx, eax
mov dword [esp + 0x78], ebp
and ecx, 0xffff
mov dword [esp + 0x38], ecx
jle 0x413c44
mov ax, word [ebp]
and eax, 0xffff
sub eax, 0x80
cmp eax, 0x6a
jl 0x413ad0
mov eax, dword [esp + 0x84]
mov ecx, dword [0x4ff000]
mov edx, ebp
and ecx, 0xffff
sub edx, eax
mov eax, dword [esp + 0x38]
sar edx, 1
sub eax, edx
cmp eax, ecx
jl 0x413ad0
mov dword [esp + 0x3c], 0
mov dword [esp + 0x7c], 0x4ff000
mov edx, dword [esp + 0x7c]
xor eax, eax
mov dword [esp + 0x74], 0
mov ax, word [edx]
test eax, eax
mov dword [esp + 0x40], eax
jle 0x413aa1
mov eax, edx
lea ebx, [ebp + 2]
lea edx, [eax + 4]
xor eax, eax
lea edi, [esp + 0x44]
mov ax, word [ebx]
sub eax, 0x21
lea ecx, [eax + eax*4]
lea eax, [eax + ecx*2]
mov ecx, dword [0x4fef8c]
lea esi, [ecx + eax*4]
mov ecx, 0xb
rep movsd dword es:[edi], dword [esi]
mov ax, word [esp + 0x44]
cmp ax, word [edx - 2]
jne 0x413aa1
mov cx, word [esp + 0x46]
cmp cx, word [edx]
jne 0x413aa1
mov eax, dword [esp + 0x74]
mov ecx, dword [esp + 0x40]
inc eax
add ebx, 4
add edx, 4
cmp eax, ecx
mov dword [esp + 0x74], eax
jl 0x413a53
mov edx, dword [esp + 0x40]
mov eax, dword [esp + 0x74]
cmp eax, edx
jge 0x413b44
mov eax, dword [esp + 0x7c]
mov esi, dword [esp + 0x3c]
add eax, 0x2e
inc esi
cmp eax, 0x4ff6a6
mov dword [esp + 0x3c], esi
mov dword [esp + 0x7c], eax
jl 0x413a32
mov ecx, dword [esp + 0x78]
mov ax, word [ebp]
mov esi, dword [esp + 0x88]
mov word [ecx], ax
mov ax, word [ebp + 2]
test esi, esi
mov word [ecx + 2], ax
je 0x413b15
mov edi, dword [esp + 0x84]
mov eax, ebp
sub eax, edi
sar eax, 1
cdq
sub eax, edx
mov ebx, eax
mov eax, ecx
sub eax, edi
sar eax, 1
cdq
sar ebx, 1
sub eax, edx
mov dx, word [esi + ebx*2]
sar eax, 1
mov word [esi + eax*2], dx
add ecx, 4
add ebp, 4
mov dword [esp + 0x78], ecx
mov esi, dword [esp + 0x84]
mov ecx, dword [esp + 0x38]
mov eax, ebp
sub eax, esi
sar eax, 1
cmp eax, ecx
jl 0x4139e4
mov eax, dword [esp + 0x14]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x60
ret
mov eax, dword [esp + 0x3c]
lea esi, [eax + eax*2]
shl esi, 3
sub esi, eax
xor eax, eax
mov ax, word [ebp + 2]
shl esi, 1
lea ecx, [eax + eax*4]
lea edx, [eax + ecx*2]
mov eax, dword [0x4fef8c]
mov ecx, dword [eax + edx*4 - 0x59c]
mov dx, word [esi + 0x4ff02c]
mov ax, word [esi + 0x4ff02a]
push ecx
push edx
push eax
call fcn.004125b0
mov ecx, dword [0x64a0a8]
add esp, 0xc
cmp ecx, 2
jle 0x413b94
lea edx, [ecx + ecx*2 - 6]
jmp 0x413b96
xor edx, edx
mov ecx, eax
add eax, 0x21
and ecx, 0xffff
lea edi, [ecx + ecx*4]
lea ecx, [ecx + edi*2]
mov edi, dword [0x4fef8c]
mov di, word [edi + ecx*4 + 4]
mov ecx, dword [esp + 0x78]
add di, dx
add edi, 0xea
mov word [ecx + 2], ax
xor eax, eax
mov word [ecx], di
mov ax, word [esi + 0x4ff000]
mov esi, 2
lea edx, [eax + eax]
lea ebp, [ebp + eax*4]
sub esi, edx
mov edx, dword [esp + 0x14]
add edx, esi
mov esi, dword [esp + 0x88]
test esi, esi
mov dword [esp + 0x14], edx
je 0x413c36
mov edi, dword [esp + 0x84]
mov eax, ebp
sub eax, edi
sar eax, 1
cdq
sub eax, edx
mov ebx, eax
mov eax, ecx
sub eax, edi
sar eax, 1
cdq
sar ebx, 1
sub eax, edx
mov dx, word [esi + ebx*2 - 2]
sar eax, 1
mov word [esi + eax*2], dx
mov eax, ebp
sub eax, ecx
sar eax, 1
cdq
sub eax, edx
mov edx, 1
sar eax, 1
sub edx, eax
mov eax, dword [esp + 0x8c]
add word [eax], dx
add ecx, 4
mov dword [esp + 0x78], ecx
jmp 0x413b1f
mov eax, ebp
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x60
ret