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

Disassembly:
sub esp, 0x60
push ebx
mov ebx, dword [esp + 0x68]
push ebp
push esi
mov eax, dword [ebx + 0x2c]
mov edx, dword [ebx + 0xc0]
mov ecx, dword [ebx + 0x28]
mov dword [esp + 0x44], eax
mov eax, dword [ebx + 0x34]
mov dword [esp + 0x4c], edx
mov edx, dword [ebx + 4]
mov ebp, dword [ebx + 0xd0]
mov dword [esp + 0x28], eax
mov eax, dword [ebx + 0x64]
mov esi, dword [edx + 8]
mov dword [esp + 0x1c], eax
mov eax, esi
push edi
sub eax, ecx
mov dword [esp + 0x54], ecx
mov dword [esp + 0x44], eax
mov eax, ebp
and al, 0x20
push ebx
neg al
sbb eax, eax
and al, 0xfe
inc eax
mov edi, eax
mov eax, ebp
and al, 0x10
neg al
sbb eax, eax
and al, 0xfe
inc eax
imul eax, ecx
mov ecx, dword [esp + 0x30]
mov ecx, dword [ecx + 8]
imul ecx, edi
sub ecx, eax
mov dword [esp + 0x50], ecx
mov ecx, dword [esp + 0x24]
mov ecx, dword [ecx + 8]
imul ecx, edi
sub ecx, eax
mov eax, dword [ebx + 0xc]
imul eax, esi
mov dword [esp + 0x34], ecx
mov ecx, dword [ebx + 8]
add eax, ecx
mov ecx, dword [edx]
lea esi, [ecx + eax*2]
call fcn.00414930
mov edx, dword [esp + 0x30]
push ebx
mov ecx, dword [edx]
lea ebp, [ecx + eax*2]
mov dword [esp + 0x2c], ebp
call fcn.00414a20
mov edx, dword [esp + 0x28]
xor edi, edi
mov di, word [ebx + 0xce]
add esp, 8
mov ecx, dword [edx]
sar edi, 3
lea edx, [ecx + eax*2]
xor eax, eax
cmp word [ebx + 0xc8], 0xb
mov ax, word [ebx + 0xca]
mov dword [esp + 0x18], edx
je 0x4164e3
mov eax, dword [esp + 0x50]
mov ecx, 0x20
sub ecx, edi
cmp eax, 0xffffffff
je 0x416b12
cmp eax, 0xfffffffe
jne 0x416b12
mov edx, dword [esp + 0x2c]
mov eax, dword [ebx + 0x3c]
imul eax, dword [edx + 8]
add eax, dword [edx + 4]
mov edx, dword [ebx + 0x38]
add eax, edx
mov edx, dword [ebx + 0x6c]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x20]
imul edx, dword [eax + 8]
add edx, dword [ebx + 0x68]
mov ebx, dword [eax + 4]
mov eax, dword [esp + 0x48]
add edx, ebx
test eax, eax
mov dword [esp + 0x2c], edx
jle 0x416b12
mov ebx, dword [esp + 0x44]
mov dword [esp + 0x50], eax
add ebx, ebx
mov dword [esp + 0x48], ebx
mov eax, dword [esp + 0x54]
test eax, eax
jle 0x41648d
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x28]
mov dl, byte [edx]
mov al, byte [eax]
test al, al
je 0x41632f
test dl, dl
je 0x416223
cmp al, 0xff
jne 0x4160cf
cmp dl, al
jne 0x416027
mov edx, dword [esp + 0x18]
xor eax, eax
mov ax, word [edx]
mov edx, dword [0x66eb5c]
and edx, 0xffff
mov dword [esp + 0x10], eax
mov dword [esp + 0x74], edx
xor edx, edx
mov dx, word [ebp]
mov dword [esp + 0x14], edx
mov ebx, edx
mov edx, dword [0x66eb6c]
and ebx, edx
and eax, edx
imul ebx, edi
imul eax, ecx
add ebx, eax
mov eax, dword [esp + 0x74]
shr ebx, 5
and ebx, edx
mov edx, dword [esp + 0x14]
and edx, eax
imul edx, edi
mov word [esp + 0x64], dx
mov edx, dword [esp + 0x10]
and eax, edx
mov dx, word [esp + 0x64]
jmp 0x416443
and edx, 0xff
mov ebx, dword [esp + 0x18]
imul edx, ecx
sar edx, 8
mov eax, ecx
sub eax, edx
xor edx, edx
mov dx, word [ebx]
mov dword [esp + 0x1c], eax
mov dword [esp + 0x10], edx
mov edx, dword [0x66eb5c]
and edx, 0xffff
mov dword [esp + 0x74], edx
xor edx, edx
mov dx, word [ebp]
mov dword [esp + 0x14], edx
xor edx, edx
mov dx, word [esi]
mov dword [esp + 0x20], edx
mov ebx, edx
mov edx, dword [0x66eb6c]
and ebx, edx
imul ebx, eax
mov eax, dword [esp + 0x14]
and eax, edx
imul eax, edi
add ebx, eax
mov eax, dword [esp + 0x10]
and eax, edx
imul eax, ecx
add ebx, eax
mov eax, dword [esp + 0x20]
shr ebx, 5
and ebx, edx
mov edx, dword [esp + 0x74]
and eax, edx
imul eax, dword [esp + 0x1c]
mov word [esp + 0x34], ax
mov eax, dword [esp + 0x14]
and eax, edx
mov edx, dword [esp + 0x34]
imul eax, edi
add edx, eax
mov eax, dword [esp + 0x74]
mov word [esp + 0x34], dx
mov edx, dword [esp + 0x10]
and eax, edx
mov dx, word [esp + 0x34]
jmp 0x416443
and eax, 0xff
imul eax, edi
sar eax, 8
cmp dl, 0xff
jne 0x41617c
mov ebx, dword [esp + 0x18]
mov edx, edi
sub edx, eax
xor eax, eax
mov ax, word [ebx]
mov dword [esp + 0x1c], edx
mov dword [esp + 0x10], eax
mov eax, dword [0x66eb5c]
and eax, 0xffff
mov dword [esp + 0x74], eax
xor eax, eax
mov ax, word [ebp]
mov dword [esp + 0x14], eax
xor eax, eax
mov ax, word [esi]
mov dword [esp + 0x20], eax
mov ebx, eax
mov eax, dword [0x66eb6c]
and ebx, eax
imul ebx, edx
mov edx, dword [esp + 0x14]
and edx, eax
imul edx, edi
add ebx, edx
mov edx, dword [esp + 0x10]
and edx, eax
imul edx, ecx
add ebx, edx
mov edx, dword [esp + 0x74]
shr ebx, 5
and ebx, eax
mov eax, dword [esp + 0x20]
and eax, edx
imul eax, dword [esp + 0x1c]
mov word [esp + 0x38], ax
mov eax, dword [esp + 0x14]
and eax, edx
mov edx, dword [esp + 0x38]
imul eax, edi
add edx, eax
mov eax, dword [esp + 0x74]
mov word [esp + 0x38], dx
mov edx, dword [esp + 0x10]
and eax, edx
mov dx, word [esp + 0x38]
jmp 0x416443
and edx, 0xff
mov ebx, 0x1f
imul edx, ecx
sar edx, 8
sub ebx, edx
mov edx, dword [esp + 0x18]
sub ebx, eax
xor eax, eax
mov ax, word [edx]
xor edx, edx
mov dword [esp + 0x10], eax
mov eax, dword [0x66eb5c]
mov dx, word [ebp]
and eax, 0xffff
mov dword [esp + 0x74], eax
xor eax, eax
mov ax, word [esi]
mov dword [esp + 0x1c], ebx
mov ebp, eax
mov dword [esp + 0x14], edx
and ebp, dword [0x66eb6c]
imul ebp, ebx
mov ebx, edx
mov edx, dword [0x66eb6c]
and ebx, edx
imul ebx, edi
add ebp, ebx
mov ebx, dword [esp + 0x10]
and ebx, edx
imul ebx, ecx
add ebp, ebx
mov ebx, dword [esp + 0x14]
shr ebp, 5
and ebp, edx
mov edx, dword [esp + 0x74]
and eax, edx
and ebx, edx
imul eax, dword [esp + 0x1c]
imul ebx, edi
add eax, ebx
mov ebx, dword [esp + 0x10]
and edx, ebx
mov ebx, dword [0x66eb5c]
imul edx, ecx
add eax, edx
sar eax, 5
and eax, ebx
or ebp, eax
mov word [esi], bp
mov ebp, dword [esp + 0x24]
jmp 0x416457
cmp al, 0xff
jne 0x416288
mov edx, dword [0x66eb5c]
xor eax, eax
mov ax, word [ebp]
and edx, 0xffff
mov dword [esp + 0x74], edx
xor edx, edx
mov dx, word [esi]
mov dword [esp + 0x14], eax
mov dword [esp + 0x20], edx
mov ebx, edx
mov edx, dword [0x66eb6c]
and ebx, edx
and eax, edx
imul ebx, ecx
imul eax, edi
add ebx, eax
mov eax, dword [esp + 0x20]
shr ebx, 5
and ebx, edx
mov edx, dword [esp + 0x74]
and eax, edx
imul eax, ecx
mov word [esp + 0x60], ax
mov eax, dword [esp + 0x14]
and eax, edx
mov dx, word [esp + 0x60]
imul eax, edi
jmp 0x416446
and eax, 0xff
mov ebx, dword [esp + 0x18]
imul eax, edi
sar eax, 8
mov edx, 0x1f
sub edx, eax
xor eax, eax
mov ax, word [ebx]
mov dword [esp + 0x1c], edx
mov dword [esp + 0x10], eax
mov eax, dword [0x66eb5c]
and eax, 0xffff
mov dword [esp + 0x74], eax
xor eax, eax
mov ax, word [ebp]
mov dword [esp + 0x14], eax
xor eax, eax
mov ax, word [esi]
mov dword [esp + 0x20], eax
mov ebx, eax
mov eax, dword [0x66eb6c]
and ebx, eax
imul ebx, edx
mov edx, dword [esp + 0x14]
and edx, eax
imul edx, edi
add ebx, edx
mov edx, dword [esp + 0x10]
and edx, eax
imul edx, ecx
add ebx, edx
mov edx, dword [esp + 0x74]
shr ebx, 5
and ebx, eax
mov eax, dword [esp + 0x20]
and eax, edx
imul eax, dword [esp + 0x1c]
mov word [esp + 0x3c], ax
mov eax, dword [esp + 0x14]
and eax, edx
mov edx, dword [esp + 0x3c]
imul eax, edi
add edx, eax
mov eax, dword [esp + 0x74]
mov word [esp + 0x3c], dx
mov edx, dword [esp + 0x10]
and eax, edx
mov dx, word [esp + 0x3c]
jmp 0x416443
test dl, dl
je 0x416457
cmp dl, 0xff
jne 0x41639d
mov edx, dword [esp + 0x18]
xor eax, eax
mov ax, word [edx]
mov edx, dword [0x66eb5c]
and edx, 0xffff
mov dword [esp + 0x10], eax
mov dword [esp + 0x74], edx
xor edx, edx
mov dx, word [esi]
mov dword [esp + 0x20], edx
mov ebx, edx
mov edx, dword [0x66eb6c]
and ebx, edx
and eax, edx
imul ebx, edi
imul eax, ecx
add ebx, eax
mov eax, dword [esp + 0x74]
shr ebx, 5
and ebx, edx
mov edx, dword [esp + 0x20]
and edx, eax
imul edx, edi
mov word [esp + 0x5c], dx
mov edx, dword [esp + 0x10]
and eax, edx
mov dx, word [esp + 0x5c]
jmp 0x416443
and edx, 0xff
mov ebx, dword [esp + 0x18]
imul edx, ecx
sar edx, 8
mov eax, 0x1f
sub eax, edx
xor edx, edx
mov dx, word [ebx]
mov dword [esp + 0x1c], eax
mov dword [esp + 0x10], edx
mov edx, dword [0x66eb5c]
and edx, 0xffff
mov dword [esp + 0x74], edx
xor edx, edx
mov dx, word [ebp]
mov dword [esp + 0x14], edx
xor edx, edx
mov dx, word [esi]
mov dword [esp + 0x20], edx
mov ebx, edx
mov edx, dword [0x66eb6c]
and ebx, edx
imul ebx, eax
mov eax, dword [esp + 0x14]
and eax, edx
imul eax, edi
add ebx, eax
mov eax, dword [esp + 0x10]
and eax, edx
imul eax, ecx
add ebx, eax
mov eax, dword [esp + 0x20]
shr ebx, 5
and ebx, edx
mov edx, dword [esp + 0x74]
and eax, edx
imul eax, dword [esp + 0x1c]
mov word [esp + 0x40], ax
mov eax, dword [esp + 0x14]
and eax, edx
mov edx, dword [esp + 0x40]
imul eax, edi
add edx, eax
mov eax, dword [esp + 0x74]
mov word [esp + 0x40], dx
mov edx, dword [esp + 0x10]
and eax, edx
mov dx, word [esp + 0x40]
imul eax, ecx
add edx, eax
mov eax, dword [0x66eb5c]
sar edx, 5
and edx, eax
or ebx, edx
mov word [esi], bx
mov eax, dword [esp + 0x18]
mov ebx, dword [esp + 0x28]
mov edx, dword [esp + 0x2c]
add eax, 2
add esi, 2
add ebp, 2
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x44]
inc ebx
inc edx
dec eax
mov dword [esp + 0x24], ebp
mov dword [esp + 0x28], ebx
mov dword [esp + 0x2c], edx
mov dword [esp + 0x44], eax
jne 0x415fa1
mov eax, dword [esp + 0x48]
mov ebx, dword [esp + 0x18]
add esi, eax
mov eax, dword [esp + 0x4c]
add eax, eax
add ebp, eax
mov eax, dword [esp + 0x30]
add eax, eax
mov dword [esp + 0x24], ebp
add ebx, eax
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x18], ebx
mov ebx, dword [esp + 0x28]
add ebx, eax
mov eax, dword [esp + 0x50]
mov dword [esp + 0x28], ebx
mov ebx, dword [esp + 0x30]
add edx, ebx
dec eax
mov dword [esp + 0x2c], edx
mov dword [esp + 0x50], eax
jne 0x415f91
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x60
ret
imul edi, eax
sar edi, 8
sar eax, 3
sub eax, edi
mov ebx, eax
mov eax, 0x20
sub eax, ebx
mov dword [esp + 0x60], eax
sub eax, edi
mov dword [esp + 0x58], eax
mov eax, 0x20
sub eax, edi
mov dword [esp + 0x5c], eax
mov eax, dword [esp + 0x50]
cmp eax, 0xffffffff
je 0x416b12
cmp eax, 0xfffffffe
jne 0x416b12
mov ecx, dword [esp + 0x74]
push ecx
call fcn.00414930
mov edx, dword [esp + 0x30]
add eax, dword [edx + 4]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x78]
push eax
call fcn.00414a20
mov ecx, dword [esp + 0x28]
mov edx, eax
add esp, 8
mov eax, dword [ecx + 4]
add edx, eax
mov eax, dword [esp + 0x48]
test eax, eax
mov dword [esp + 0x28], edx
jle 0x416b12
mov ecx, dword [esp + 0x44]
mov dword [esp + 0x64], eax
add ecx, ecx
mov dword [esp + 0x48], ecx
mov eax, dword [esp + 0x54]
test eax, eax
jle 0x416ac7
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x2c]
mov cl, byte [eax]
mov al, byte [edx]
test cl, cl
je 0x416956
test al, al
je 0x416836
cmp cl, 0xff
jne 0x4166df
cmp al, cl
jne 0x416639
mov ecx, dword [esp + 0x18]
xor eax, eax
mov ax, word [ecx]
xor ecx, ecx
mov cx, word [esi]
mov dword [esp + 0x10], eax
mov eax, dword [0x66eb5c]
mov dword [esp + 0x1c], ecx
and eax, 0xffff
mov edx, ecx
mov ecx, dword [0x66eb6c]
mov dword [esp + 0x74], eax
xor eax, eax
and edx, ecx
mov ax, word [ebp]
imul edx, dword [esp + 0x58]
mov dword [esp + 0x14], eax
and eax, ecx
imul eax, edi
add edx, eax
mov eax, dword [esp + 0x10]
and eax, ecx
imul eax, ebx
add edx, eax
mov eax, dword [esp + 0x1c]
shr edx, 5
and edx, ecx
mov ecx, dword [esp + 0x74]
and eax, ecx
imul eax, dword [esp + 0x58]
mov word [esp + 0x40], ax
mov eax, dword [esp + 0x14]
and eax, ecx
mov ecx, dword [esp + 0x40]
imul eax, edi
add ecx, eax
mov eax, dword [esp + 0x74]
mov word [esp + 0x40], cx
mov ecx, dword [esp + 0x10]
and eax, ecx
mov cx, word [esp + 0x40]
imul eax, ebx
jmp 0x416a80
and eax, 0xff
mov ecx, 0x1f
imul eax, ebx
sar eax, 8
sub ecx, eax
xor eax, eax
mov ax, word [esi]
mov edx, dword [esp + 0x18]
mov dword [esp + 0x1c], eax
mov eax, dword [0x66eb5c]
sub ecx, edi
and eax, 0xffff
mov dword [esp + 0x20], ecx
mov dword [esp + 0x74], eax
xor ecx, ecx
xor eax, eax
mov cx, word [ebp]
mov ax, word [edx]
mov dword [esp + 0x14], ecx
mov edx, ecx
mov ecx, dword [0x66eb6c]
mov dword [esp + 0x10], eax
and edx, ecx
and eax, ecx
imul edx, edi
imul eax, ebx
add edx, eax
mov eax, dword [esp + 0x1c]
and eax, ecx
imul eax, dword [esp + 0x20]
add edx, eax
mov eax, dword [esp + 0x14]
shr edx, 5
and edx, ecx
mov ecx, dword [esp + 0x74]
and eax, ecx
imul eax, edi
mov word [esp + 0x3c], ax
mov eax, dword [esp + 0x10]
and ecx, eax
mov eax, dword [esp + 0x3c]
imul ecx, ebx
add eax, ecx
mov ecx, dword [esp + 0x74]
mov word [esp + 0x3c], ax
mov eax, dword [esp + 0x1c]
and eax, ecx
mov cx, word [esp + 0x3c]
jmp 0x416a7b
and ecx, 0xff
imul ecx, edi
sar ecx, 8
cmp al, 0xff
jne 0x41678e
mov eax, 0x1f
sub eax, ecx
mov ecx, dword [esp + 0x18]
sub eax, ebx
mov dword [esp + 0x20], eax
xor eax, eax
mov ax, word [esi]
mov dword [esp + 0x1c], eax
mov eax, dword [0x66eb5c]
and eax, 0xffff
mov dword [esp + 0x74], eax
xor eax, eax
mov ax, word [ecx]
xor ecx, ecx
mov cx, word [ebp]
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], ecx
mov edx, ecx
mov ecx, dword [0x66eb6c]
and edx, ecx
and eax, ecx
imul edx, edi
imul eax, ebx
add edx, eax
mov eax, dword [esp + 0x1c]
and eax, ecx
imul eax, dword [esp + 0x20]
add edx, eax
mov eax, dword [esp + 0x14]
shr edx, 5
and edx, ecx
mov ecx, dword [esp + 0x74]
and eax, ecx
imul eax, edi
mov word [esp + 0x38], ax
mov eax, dword [esp + 0x10]
and ecx, eax
mov eax, dword [esp + 0x38]
imul ecx, ebx
add eax, ecx
mov ecx, dword [esp + 0x74]
mov word [esp + 0x38], ax
mov eax, dword [esp + 0x1c]
and eax, ecx
mov cx, word [esp + 0x38]
jmp 0x416a7b
and eax, 0xff
mov edx, 0x1f
imul eax, ebx
sar eax, 8
sub edx, eax
xor eax, eax
mov ax, word [esi]
sub edx, ecx
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x1c], eax
mov eax, dword [0x66eb5c]
mov dword [esp + 0x20], edx
and eax, 0xffff
mov edx, dword [0x66eb6c]
mov dword [esp + 0x74], eax
xor eax, eax
mov ax, word [ecx]
xor ecx, ecx
mov cx, word [ebp]
mov dword [esp + 0x10], eax
mov ebp, ecx
and eax, edx
and ebp, edx
imul eax, ebx
imul ebp, edi
add ebp, eax
mov eax, dword [esp + 0x1c]
and eax, edx
imul eax, dword [esp + 0x20]
add ebp, eax
mov eax, edx
mov edx, dword [esp + 0x10]
shr ebp, 5
and ebp, eax
mov eax, dword [esp + 0x74]
and ecx, eax
and eax, edx
imul ecx, edi
imul eax, ebx
mov edx, dword [esp + 0x74]
add ecx, eax
mov eax, dword [esp + 0x1c]
and eax, edx
mov edx, dword [0x66eb5c]
imul eax, dword [esp + 0x20]
add ecx, eax
sar ecx, 5
and ecx, edx
or ebp, ecx
mov word [esi], bp
mov ebp, dword [esp + 0x24]
jmp 0x416a91
cmp cl, 0xff
jne 0x4168b1
mov edx, dword [0x66eb5c]
xor eax, eax
mov ax, word [ebp]
xor ecx, ecx
mov cx, word [esi]
and edx, 0xffff
mov dword [esp + 0x14], eax
mov dword [esp + 0x1c], ecx
and ecx, edx
and eax, edx
imul ecx, dword [esp + 0x5c]
imul eax, edi
mov edx, dword [0x66eb6c]
add ecx, eax
mov eax, dword [0x66eb5c]
sar ecx, 5
and ecx, eax
mov eax, dword [esp + 0x1c]
and eax, edx
mov dword [esp + 0x74], ecx
imul eax, dword [esp + 0x5c]
mov word [esp + 0x68], ax
mov eax, dword [esp + 0x14]
and eax, edx
mov cx, word [esp + 0x68]
imul eax, edi
add ecx, eax
mov eax, edx
shr ecx, 5
and ecx, eax
mov eax, dword [esp + 0x74]
or eax, ecx
mov word [esi], ax
jmp 0x416a91
and ecx, 0xff
mov eax, 0x1f
imul ecx, edi
sar ecx, 8
sub eax, ecx
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x20], eax
xor eax, eax
mov ax, word [esi]
mov dword [esp + 0x1c], eax
mov eax, dword [0x66eb5c]
and eax, 0xffff
mov dword [esp + 0x74], eax
xor eax, eax
mov ax, word [ecx]
xor ecx, ecx
mov cx, word [ebp]
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], ecx
mov edx, ecx
mov ecx, dword [0x66eb6c]
and edx, ecx
and eax, ecx
imul edx, edi
imul eax, ebx
add edx, eax
mov eax, dword [esp + 0x1c]
and eax, ecx
imul eax, dword [esp + 0x20]
add edx, eax
mov eax, dword [esp + 0x14]
shr edx, 5
and edx, ecx
mov ecx, dword [esp + 0x74]
and eax, ecx
imul eax, edi
mov word [esp + 0x34], ax
mov eax, dword [esp + 0x10]
and ecx, eax
mov eax, dword [esp + 0x34]
imul ecx, ebx
add eax, ecx
mov ecx, dword [esp + 0x74]
mov word [esp + 0x34], ax
mov eax, dword [esp + 0x1c]
and eax, ecx
mov cx, word [esp + 0x34]
jmp 0x416a7b
test al, al
je 0x416a91
cmp al, 0xff
jne 0x4169dc
mov ecx, dword [0x66eb5c]
mov edx, dword [esp + 0x18]
and ecx, 0xffff
xor eax, eax
mov ax, word [esi]
mov dword [esp + 0x74], ecx
xor ecx, ecx
mov dword [esp + 0x1c], eax
mov cx, word [edx]
mov edx, dword [esp + 0x74]
mov dword [esp + 0x10], ecx
and edx, ecx
mov ecx, dword [esp + 0x74]
imul edx, ebx
and eax, ecx
mov ecx, dword [0x66eb5c]
imul eax, dword [esp + 0x60]
add edx, eax
mov eax, dword [esp + 0x10]
sar edx, 5
and edx, ecx
mov ecx, dword [0x66eb6c]
and eax, ecx
imul eax, ebx
mov word [esp + 0x6c], ax
mov eax, dword [esp + 0x1c]
and eax, ecx
mov cx, word [esp + 0x6c]
imul eax, dword [esp + 0x60]
add ecx, eax
mov eax, dword [0x66eb6c]
shr ecx, 5
jmp 0x416a8a
and eax, 0xff
mov ecx, 0x1f
imul eax, ebx
sar eax, 8
sub ecx, eax
xor eax, eax
mov ax, word [esi]
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x1c], eax
mov eax, dword [0x66eb5c]
and eax, 0xffff
mov dword [esp + 0x74], eax
xor eax, eax
mov ax, word [ecx]
xor ecx, ecx
mov cx, word [ebp]
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], ecx
mov edx, ecx
mov ecx, dword [0x66eb6c]
and edx, ecx
and eax, ecx
imul edx, edi
imul eax, ebx
add edx, eax
mov eax, dword [esp + 0x1c]
and eax, ecx
imul eax, dword [esp + 0x20]
add edx, eax
mov eax, dword [esp + 0x14]
shr edx, 5
and edx, ecx
mov ecx, dword [esp + 0x74]
and eax, ecx
imul eax, edi
mov word [esp + 0x44], ax
mov eax, dword [esp + 0x10]
and ecx, eax
mov eax, dword [esp + 0x44]
imul ecx, ebx
add eax, ecx
mov ecx, dword [esp + 0x74]
mov word [esp + 0x44], ax
mov eax, dword [esp + 0x1c]
and eax, ecx
mov cx, word [esp + 0x44]
imul eax, dword [esp + 0x20]
add ecx, eax
mov eax, dword [0x66eb5c]
sar ecx, 5
and ecx, eax
or edx, ecx
mov word [esi], dx
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x2c]
add esi, 2
add ebp, 2
add eax, 2
inc edx
mov dword [esp + 0x2c], edx
mov edx, dword [esp + 0x28]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x50]
inc edx
dec eax
mov dword [esp + 0x24], ebp
mov dword [esp + 0x28], edx
mov dword [esp + 0x50], eax
jne 0x41657d
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x4c]
mov edx, dword [esp + 0x30]
add esi, eax
lea eax, [ecx + ecx]
add ebp, eax
lea eax, [edx + edx]
mov edx, dword [esp + 0x18]
mov dword [esp + 0x24], ebp
add edx, eax
mov eax, dword [esp + 0x64]
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0x2c]
add edx, ecx
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x2c], edx
mov edx, dword [esp + 0x28]
add edx, ecx
dec eax
mov dword [esp + 0x28], edx
mov dword [esp + 0x64], eax
jne 0x41656d
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x60
ret