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

Disassembly:
sub esp, 0x15c
push ebx
push ebp
and dword [esp + 0x40], 0
mov ebp, edx
push esi
mov esi, ecx
mov ebx, dword [esp + 0x1c0]
mov ecx, dword [esp + 0x17c]
push edi
add ecx, 8
mov dword [esp + 0x58], ebp
mov eax, dword [esi + 0x110c]
sub eax, dword [esp + 0x194]
add eax, 0x141
mov dword [esp + 0x88], esi
lea edi, [esi + eax*4]
mov eax, dword [esi + 0x1108]
sub eax, dword [esp + 0x194]
mov dword [esp + 0x4c], edi
lea edx, [ecx + eax*4]
mov eax, dword [esp + 0x1a4]
sar eax, 6
mov dword [esp + 0xa8], eax
mov eax, dword [esp + 0x1b0]
mov dword [esp + 0x60], edx
test eax, eax
jle 0x461f01
mov eax, dword [esp + 0x1c8]
mov ecx, dword [esp + 0x1cc]
mov esi, dword [esp + 0x17c]
mov dword [esp + 0x44], 0x80
mov eax, dword [eax]
mov dword [esp + 0x38], eax
lea eax, [ecx + ecx]
sub esi, eax
mov dword [esp + 0x5c], 0x404
mov eax, dword [esp + 0x174]
mov dword [esp + 0x90], eax
mov eax, dword [esp + 0x178]
sub eax, ecx
mov dword [esp + 0x70], esi
mov esi, dword [esp + 0x198]
mov ecx, dword [esp + 0x18c]
mov dword [esp + 0xa4], eax
mov eax, dword [esp + 0x1c0]
mov dword [esp + 0x68], eax
mov eax, dword [esp + 0x1ac]
mov dword [esp + 0x9c], eax
mov eax, dword [esp + 0x1a8]
mov dword [esp + 0xa0], eax
mov eax, dword [esp + 0x1a0]
mov dword [esp + 0x6c], eax
mov eax, dword [esp + 0x19c]
mov dword [esp + 0x8c], eax
mov dword [esp + 0x64], esi
mov eax, dword [esp + 0x170]
cmp eax, 2
jne 0x4613cc
movsx eax, word [ecx + 6]
movsx esi, word [ecx + 8]
mov edi, dword [edx - 0x10]
mov dword [esp + 0x24], eax
movsx eax, word [ecx + 4]
movsx ebx, word [ecx + 2]
mov dword [esp + 0x2c], eax
movsx ecx, word [ecx]
mov ebp, dword [edx - 4]
mov edx, dword [edx]
movzx eax, di
imul eax, esi
mov dword [esp + 0x1c], ebx
sar edi, 0xf
push 0xfffffffffffffffe
sar eax, 0xf
and eax, 0xfffffffe
mov dword [esp + 0x14], eax
movzx eax, dx
imul eax, ecx
sar edx, 0xf
sar eax, 0xf
and eax, 0xfffffffe
add dword [esp + 0x14], eax
movzx eax, bp
imul eax, ebx
mov ebx, dword [esp + 0x64]
sar ebp, 0xf
sar eax, 0xf
and eax, 0xfffffffe
add dword [esp + 0x14], eax
mov eax, dword [ebx - 8]
movzx eax, ax
imul eax, dword [esp + 0x30]
sar eax, 0xf
and eax, 0xfffffffe
add dword [esp + 0x14], eax
mov eax, dword [ebx - 0xc]
movzx eax, ax
imul eax, dword [esp + 0x28]
pop ebx
and edi, ebx
and edx, ebx
imul edx, ecx
and ebp, ebx
imul ebp, dword [esp + 0x1c]
sar eax, 0xf
and eax, ebx
imul edi, esi
add dword [esp + 0x10], eax
mov eax, dword [esp + 0x10]
mov esi, dword [esp + 0x64]
add eax, edi
mov edi, dword [esp + 0x4c]
add eax, edx
mov edx, dword [esp + 0x60]
add eax, ebp
mov ebp, dword [esp + 0x58]
mov ecx, dword [edx - 8]
sar ecx, 0xf
and ecx, ebx
imul ecx, dword [esp + 0x2c]
add eax, ecx
mov ecx, dword [edx - 0xc]
sar ecx, 0xf
and ecx, ebx
mov ebx, dword [esp + 0x1c4]
imul ecx, dword [esp + 0x24]
add ecx, 4
add eax, ecx
add edx, 4
mov dword [esp + 0x24], eax
mov dword [esp + 0x60], edx
jmp 0x4613d1
and dword [esp + 0x24], 0
cmp dword [esp + 0x194], 0
jle 0x461441
mov edx, dword [edi - 4]
mov eax, dword [esp + 0x4c]
mov edi, dword [edi - 8]
movzx ecx, dx
sar edx, 0x10
add edi, dword [eax]
mov eax, dword [esp + 0x64]
sar eax, 0x10
imul ecx, eax
mov eax, dword [esp + 0x24]
movsx esi, si
sar ecx, 0xe
and ecx, 0xfffffffc
sub eax, ecx
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x64]
mov ecx, dword [esp + 0x30]
sar eax, 0xe
and eax, 0xfffffffc
imul eax, edx
sub ecx, eax
movzx eax, di
imul eax, esi
sar edi, 0xe
and edi, 0xfffffffc
imul edi, esi
sar eax, 0xe
and eax, 0xfffffffc
sub ecx, eax
sub ecx, edi
add dword [esp + 0x4c], 4
mov dword [esp + 0x30], ecx
jmp 0x461446
and dword [esp + 0x30], 0
test ebx, ebx
jle 0x461b31
mov eax, dword [esp + 0x44]
mov ecx, dword [esp + 0x90]
mov dword [esp + 0x1c], ebx
mov ecx, dword [eax + ecx - 0x80]
add eax, 0xffffffdc
mov dword [esp + 0x40], ecx
mov ecx, dword [esp + 0x1bc]
sar ecx, 1
mov dword [esp + 0x94], ecx
mov ecx, dword [esp + 0x1b8]
sar ecx, 1
mov dword [esp + 0x98], ecx
mov ecx, dword [esp + 0x6c]
sar ecx, 0x10
mov dword [esp + 0x74], ecx
mov ecx, dword [esp + 0x6c]
sar ecx, 0xe
and ecx, 0xfffffffc
add eax, ebp
mov dword [esp + 0x78], ecx
mov ebx, eax
lea ecx, [esp + 0xc8]
mov dword [esp + 0x18], eax
mov dword [esp + 0x28], ecx
lea ecx, [ebp + 0x480]
mov dword [esp + 0x20], ecx
imul eax, dword [ecx + 4], 0xbb38435
add eax, 0x3619636b
mov dword [ecx + 4], eax
mov ecx, dword [esp + 0x188]
mov edi, dword [ebx + 8]
mov edx, dword [ebx + 0xc]
movsx eax, word [ecx + 0x12]
mov dword [esp + 0x7c], eax
movsx eax, word [ecx + 0x10]
mov dword [esp + 0x84], eax
mov eax, dword [ebx + 0x10]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x188]
mov ebx, dword [esp + 0x20]
movsx esi, word [ecx + 0xc]
movsx ebp, word [ecx + 0xe]
movsx eax, word [eax + 8]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x188]
movsx ecx, word [ecx + 0xa]
mov dword [esp + 0x54], esi
movsx eax, word [eax + 6]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x188]
movsx eax, word [eax + 4]
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x188]
movsx eax, word [eax + 2]
mov dword [esp + 0x80], eax
mov eax, dword [esp + 0x44]
mov eax, dword [ebx + eax - 0x484]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x188]
movsx ebx, word [eax]
movzx eax, dx
imul eax, ecx
sar eax, 0x10
mov dword [esp + 0x10], eax
movzx eax, di
imul eax, esi
mov esi, dword [esp + 0x18]
sar eax, 0x10
add dword [esp + 0x10], eax
mov eax, dword [esi + 4]
movzx eax, ax
imul eax, ebp
sar eax, 0x10
add dword [esp + 0x10], eax
mov eax, dword [esi]
movzx eax, ax
imul eax, dword [esp + 0x84]
sar eax, 0x10
add dword [esp + 0x10], eax
mov eax, dword [esi - 4]
movzx eax, ax
imul eax, dword [esp + 0x7c]
sar eax, 0x10
add dword [esp + 0x10], eax
mov eax, dword [esp + 0x2c]
movzx eax, ax
imul eax, ebx
sar eax, 0x10
add dword [esp + 0x10], eax
mov eax, dword [esi + 0x1c]
movzx eax, ax
imul eax, dword [esp + 0x80]
sar eax, 0x10
add dword [esp + 0x10], eax
mov eax, dword [esi + 0x18]
movzx eax, ax
imul eax, dword [esp + 0x50]
sar eax, 0x10
add dword [esp + 0x10], eax
mov eax, dword [esi + 0x14]
movzx eax, ax
imul eax, dword [esp + 0x3c]
sar eax, 0x10
add dword [esp + 0x10], eax
mov eax, dword [esp + 0x34]
movzx eax, ax
imul eax, dword [esp + 0x14]
sar eax, 0x10
add dword [esp + 0x10], eax
sar edx, 0x10
imul edx, ecx
mov ecx, dword [esp + 0x10]
sar edi, 0x10
imul edi, dword [esp + 0x54]
add ecx, edx
mov edx, esi
add ecx, edi
mov eax, dword [edx + 4]
sar eax, 0x10
imul eax, ebp
add ecx, eax
mov eax, dword [edx]
sar eax, 0x10
imul eax, dword [esp + 0x84]
add ecx, eax
mov eax, dword [edx - 4]
sar eax, 0x10
imul eax, dword [esp + 0x7c]
add ecx, eax
mov eax, dword [esp + 0x2c]
sar eax, 0x10
imul eax, ebx
mov ebx, dword [esp + 0x34]
sar ebx, 0x10
imul ebx, dword [esp + 0x14]
add ecx, eax
mov eax, dword [edx + 0x1c]
sar eax, 0x10
imul eax, dword [esp + 0x80]
add ecx, eax
mov eax, dword [edx + 0x18]
sar eax, 0x10
imul eax, dword [esp + 0x50]
add ecx, eax
mov eax, dword [edx + 0x14]
sar eax, 0x10
imul eax, dword [esp + 0x3c]
add eax, dword [esp + 0x94]
add eax, ecx
add ebx, eax
cmp dword [esp + 0x1bc], 0x10
mov dword [esp + 0x34], ebx
jne 0x461793
mov ecx, dword [esp + 0x188]
mov ebp, dword [edx - 0x10]
mov edi, dword [edx - 0xc]
mov edx, dword [edx - 8]
movsx eax, word [ecx + 0x1e]
movsx ebx, word [ecx + 0x18]
movsx esi, word [ecx + 0x16]
mov dword [esp + 0x50], eax
movsx eax, word [ecx + 0x1c]
mov dword [esp + 0x3c], eax
movsx eax, word [ecx + 0x1a]
movsx ecx, word [ecx + 0x14]
mov dword [esp + 0x14], eax
movzx eax, dx
imul eax, ecx
mov dword [esp + 0x54], ebx
sar edx, 0x10
imul edx, ecx
sar eax, 0x10
mov dword [esp + 0x10], eax
movzx eax, di
imul eax, esi
sar edi, 0x10
imul edi, esi
sar eax, 0x10
add dword [esp + 0x10], eax
movzx eax, bp
imul eax, ebx
mov ebx, dword [esp + 0x18]
sar ebp, 0x10
imul ebp, dword [esp + 0x54]
sar eax, 0x10
add dword [esp + 0x10], eax
mov eax, dword [ebx - 0x14]
movzx eax, ax
imul eax, dword [esp + 0x14]
sar eax, 0x10
add dword [esp + 0x10], eax
mov eax, dword [ebx - 0x18]
movzx eax, ax
imul eax, dword [esp + 0x3c]
sar eax, 0x10
add dword [esp + 0x10], eax
mov eax, dword [ebx - 0x1c]
movzx eax, ax
imul eax, dword [esp + 0x50]
sar eax, 0x10
add dword [esp + 0x10], eax
mov ecx, dword [esp + 0x10]
add ecx, edx
mov edx, ebx
mov ebx, dword [esp + 0x34]
add ecx, edi
add ecx, ebp
mov eax, dword [edx - 0x14]
sar eax, 0x10
imul eax, dword [esp + 0x14]
add ecx, eax
mov eax, dword [edx - 0x18]
sar eax, 0x10
imul eax, dword [esp + 0x3c]
add ecx, eax
mov eax, dword [edx - 0x1c]
sar eax, 0x10
imul eax, dword [esp + 0x50]
add ebx, eax
add ebx, ecx
mov edx, dword [esp + 0x20]
shl ebx, 4
mov dword [esp + 0x34], ebx
mov ebx, dword [esp + 0x68]
mov ecx, dword [edx - 0x40]
lea ebp, [edx - 0x3c]
movsx esi, bx
mov ebx, ecx
movzx eax, cx
imul eax, esi
sar ebx, 0x10
imul ebx, esi
push 2
sar eax, 0x10
add eax, dword [esp + 0x30]
add ebx, eax
mov eax, dword [ebp]
mov edi, eax
mov dword [esp + 0x18], eax
sub edi, ebx
mov dword [edx - 0x40], ebx
movzx eax, di
imul eax, esi
sar edi, 0x10
imul edi, esi
sar eax, 0x10
add eax, ecx
movzx ecx, bx
add edi, eax
sar ebx, 0x10
mov eax, dword [esp + 0x194]
movsx eax, word [eax]
imul ecx, eax
imul ebx, eax
mov eax, dword [esp + 0x1bc]
sar ecx, 0x10
add ecx, dword [esp + 0x9c]
add ebx, ecx
pop ecx
mov dword [esp + 0x10], ecx
cmp eax, ecx
jle 0x4618d5
mov esi, dword [ebp + 4]
mov edx, dword [esp + 0x68]
sub esi, edi
movzx eax, si
movsx ecx, dx
imul eax, ecx
sar esi, 0x10
imul esi, ecx
mov ecx, dword [esp + 0x190]
mov dword [ebp], edi
lea ebp, [ebp + 8]
sar eax, 0x10
add eax, dword [esp + 0x14]
add esi, eax
mov eax, dword [esp + 0x10]
movsx eax, word [ecx + eax*2 - 2]
movzx ecx, di
imul ecx, eax
sar edi, 0x10
imul edi, eax
mov eax, dword [ebp]
mov dword [esp + 0x14], eax
sar ecx, 0x10
lea edx, [ebx + edi]
mov ebx, dword [esp + 0x68]
mov edi, eax
add edx, ecx
sub edi, esi
movsx ecx, bx
movzx eax, di
imul eax, ecx
sar edi, 0x10
imul edi, ecx
mov ecx, dword [esp + 0x190]
sar eax, 0x10
add eax, dword [ebp - 4]
add edi, eax
mov dword [ebp - 4], esi
mov eax, dword [esp + 0x10]
movsx eax, word [ecx + eax*2]
movzx ecx, si
sar esi, 0x10
imul esi, eax
imul ecx, eax
mov eax, dword [esp + 0x10]
add eax, 2
mov dword [esp + 0x10], eax
sar ecx, 0x10
lea ebx, [edx + esi]
add ebx, ecx
cmp eax, dword [esp + 0x1b8]
jl 0x46181b
mov edx, dword [esp + 0x20]
mov eax, dword [esp + 0x1b8]
mov ecx, dword [esp + 0x190]
mov dword [edx + eax*4 - 0x44], edi
mov esi, dword [edx]
movzx edx, si
movsx eax, word [ecx + eax*2 - 2]
movzx ecx, di
imul ecx, eax
sar edi, 0xd
and edi, 0xfffffff8
imul edi, eax
mov eax, edx
sar ecx, 0xd
and ecx, 0xfffffff8
add ecx, edi
mov edi, dword [esp + 0x8c]
movsx ebp, di
imul eax, ebp
sar eax, 0xe
and eax, 0xfffffffc
add ecx, eax
mov eax, esi
sar eax, 0xe
and eax, 0xfffffffc
sar esi, 0x10
imul eax, ebp
imul esi, dword [esp + 0x78]
add ecx, eax
mov eax, dword [esp + 0x38]
lea edi, [ecx + ebx*8]
mov ebx, dword [esp + 0x20]
mov dword [esp + 0x14], edi
mov ecx, dword [ebx + eax*4 - 0xc0]
mov ebx, dword [esp + 0x6c]
movzx ebp, cx
movsx eax, bx
imul ebp, eax
mov eax, dword [esp + 0x74]
imul eax, edx
mov edx, ebx
sar ecx, 0xe
and ecx, 0xfffffffc
mov ebx, dword [esp + 0x20]
sar ebp, 0xe
and ebp, 0xfffffffc
sar eax, 0xe
and eax, 0xfffffffc
add ebp, eax
movsx eax, dx
imul ecx, eax
mov eax, dword [esp + 0x40]
mov edx, dword [esp + 0x9c]
add ebp, ecx
mov ecx, dword [esp + 0x34]
add ebp, esi
sub ecx, ebp
mov dword [esp + 0x3c], ebp
sub ecx, edi
add ecx, dword [esp + 0x30]
sar ecx, 3
inc ecx
sar ecx, 1
sub eax, ecx
sub ecx, dword [esp + 0x40]
cmp dword [ebx + 4], 0
cmovge ecx, eax
mov eax, 0xffff8400
cmp ecx, eax
mov esi, ecx
cmovl esi, eax
mov eax, 0x7800
cmp ecx, eax
cmovg esi, eax
mov eax, esi
mov dword [esp + 0x54], esi
sub eax, edx
sar eax, 0xa
test eax, eax
jle 0x4619e1
shl eax, 0xa
lea edi, [edx - 0x50]
add edi, eax
movzx ecx, di
lea ebx, [edi + 0x400]
jmp 0x4619ee
jne 0x4619f3
mov edi, edx
movzx ecx, dx
lea ebx, [edx + 0x3b0]
movzx edx, bx
jmp 0x461a28
cmp eax, 0xffffffff
jne 0x461a0c
lea edi, [edx - 0x3b0]
mov ebx, edx
mov eax, edi
movzx edx, dx
neg eax
movzx ecx, ax
jmp 0x461a28
shl eax, 0xa
lea edi, [edx + 0x50]
add edi, eax
mov eax, edi
neg eax
movzx ecx, ax
lea ebx, [edi + 0x400]
mov eax, ebx
neg eax
movzx edx, ax
mov ebp, dword [esp + 0xa0]
mov eax, esi
sub eax, edi
movsx esi, cx
cwde
imul eax, eax
movsx ecx, bp
imul esi, ecx
movsx edx, dx
imul edx, ecx
mov ecx, edi
add esi, eax
mov eax, dword [esp + 0x54]
sub eax, ebx
sar esi, 0xa
cwde
imul eax, eax
add edx, eax
sar edx, 0xa
cmp esi, edx
mov eax, edx
cmovge ecx, ebx
cmovge eax, esi
cmovge ebx, edi
mov edi, dword [esp + 0x20]
add eax, dword [edi + 0xc]
cmp esi, edx
cmovge esi, edx
mov edx, dword [esp + 0x28]
add esi, dword [edi + 0xc]
mov dword [edx - 0x18], esi
mov dword [edx], eax
mov dword [edx - 0x1c], ecx
mov dword [edx - 4], ebx
mov eax, dword [edx - 0x1c]
mov edi, dword [edi + 4]
mov edx, dword [esp + 0x34]
mov ebx, dword [esp + 0x28]
shl eax, 4
mov esi, eax
neg esi
test edi, edi
cmovns esi, eax
add esi, dword [esp + 0x24]
add edx, esi
mov ecx, edx
sub ecx, dword [esp + 0x14]
mov eax, ecx
sub eax, dword [esp + 0x3c]
mov dword [ebx - 0xc], eax
mov eax, ebx
mov dword [eax - 0x10], ecx
mov dword [eax - 8], esi
mov dword [eax - 0x14], edx
mov eax, dword [eax - 4]
mov edx, dword [esp + 0x34]
shl eax, 4
mov esi, eax
neg esi
test edi, edi
mov edi, ebx
mov ebx, dword [esp + 0x18]
cmovns esi, eax
add esi, dword [esp + 0x24]
add edx, esi
mov ecx, edx
mov dword [edi + 0x10], esi
sub ecx, dword [esp + 0x14]
mov eax, ecx
mov dword [edi + 8], ecx
sub eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x20]
mov dword [edi + 0xc], eax
mov eax, 0x490
add ecx, eax
mov dword [edi + 4], edx
add ebx, eax
mov dword [esp + 0x20], ecx
add edi, 0x30
mov dword [esp + 0x18], ebx
mov dword [esp + 0x28], edi
sub dword [esp + 0x1c], 1
jne 0x4614be
mov eax, dword [esp + 0x1c8]
mov ebx, dword [esp + 0x1c4]
mov edi, dword [eax]
jmp 0x461b3c
mov edi, dword [esp + 0x38]
mov eax, dword [esp + 0x1c8]
mov esi, dword [esp + 0x1cc]
dec edi
and edi, 0x1f
xor ebp, ebp
add esi, edi
mov dword [eax], edi
mov eax, dword [esp + 0xb0]
and esi, 0x1f
xor edx, edx
mov dword [esp + 0x38], edi
inc ebp
mov dword [esp + 0x30], esi
mov dword [esp + 0x1c], edx
cmp ebx, ebp
jle 0x461b93
mov edi, eax
imul eax, ebp, 0x30
mov ecx, dword [esp + eax + 0xb0]
cmp ecx, edi
mov eax, ebp
cmovge eax, edx
inc ebp
cmp ecx, edi
mov edx, eax
cmovge ecx, edi
mov edi, ecx
cmp ebp, ebx
jl 0x461b6c
mov edi, dword [esp + 0x38]
mov dword [esp + 0x1c], edx
mov ebp, dword [esp + 0x58]
imul eax, edx, 0x124
add eax, esi
mov eax, dword [ebp + eax*4 + 0x1c0]
mov dword [esp + 0x40], eax
test ebx, ebx
jle 0x461be7
mov edi, dword [esp + 0x40]
lea ecx, [ebp + 0x1c0]
lea eax, [esp + 0xc8]
mov edx, ebx
lea ecx, [ecx + esi*4]
cmp dword [ecx], edi
je 0x461bd5
add dword [eax - 0x18], 0x7ffffff
add dword [eax], 0x7ffffff
add ecx, 0x490
add eax, 0x30
sub edx, 1
jne 0x461bc4
mov edi, dword [esp + 0x38]
mov eax, dword [esp + 0xb0]
xor edx, edx
and dword [esp + 0x28], edx
mov ecx, dword [esp + 0xc8]
mov dword [esp + 0x18], edx
mov dword [esp + 0x24], 1
cmp ebx, 1
jle 0x461c80
mov edi, eax
mov ebp, ecx
mov eax, dword [esp + 0x24]
mov esi, edx
imul edx, eax, 0x30
mov ecx, dword [esp + edx + 0xb0]
cmp ecx, edi
cmovle ecx, edi
cmovle eax, esi
mov esi, eax
mov edi, ecx
mov ecx, dword [esp + edx + 0xc8]
cmp ecx, ebp
mov eax, dword [esp + 0x24]
cmovge eax, dword [esp + 0x28]
cmovge ecx, ebp
mov dword [esp + 0x28], eax
mov ebp, ecx
mov eax, dword [esp + 0x24]
inc eax
mov dword [esp + 0x24], eax
cmp eax, ebx
jl 0x461c16
mov ecx, dword [esp + 0x28]
mov edx, esi
mov dword [esp + 0x20], ebp
mov eax, edi
mov ebp, dword [esp + 0x58]
mov dword [esp + 0x18], esi
mov esi, dword [esp + 0x30]
mov dword [esp + 0x2c], edi
mov edi, dword [esp + 0x38]
mov dword [esp + 0x28], ecx
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x18], edx
cmp ecx, eax
jge 0x461ce9
mov eax, 0x510
sub eax, dword [esp + 0x44]
push eax
imul eax, dword [esp + 0x2c], 0x124
add eax, dword [esp + 0x4c]
lea eax, [eax*4]
add eax, ebp
push eax
imul eax, edx, 0x124
add eax, dword [esp + 0x50]
lea eax, [eax*4]
add eax, ebp
push eax
call fcn.00505060
imul eax, dword [esp + 0x34], 0x30
lea esi, [esp + 0xd0]
add esp, 0xc
lea edi, [esp + 0xac]
add esi, eax
imul eax, dword [esp + 0x18], 0x30
push 6
pop ecx
add edi, eax
rep movsd dword es:[edi], dword [esi]
mov edi, dword [esp + 0x38]
mov esi, dword [esp + 0x30]
imul ecx, dword [esp + 0x1c], 0x490
mov edx, dword [esp + 0x48]
add ecx, ebp
cmp dword [esp + 0x1b4], 0
mov dword [esp + 0x1c], ecx
jg 0x461d12
cmp edx, dword [esp + 0x1cc]
jl 0x461dd6
mov eax, dword [ecx + esi*4 + 0x240]
mov ebx, dword [esp + 0xa4]
sar eax, 9
inc eax
sar eax, 1
mov byte [ebx + edx], al
mov eax, dword [esp + 0x184]
mov edx, dword [esp + 0x30]
mov esi, dword [eax + esi*4]
mov edx, dword [ecx + edx*4 + 0x2c0]
movsx ecx, si
sar esi, 0xf
inc esi
movzx eax, dx
sar esi, 1
imul esi, edx
imul eax, ecx
sar edx, 0x10
imul edx, ecx
sar eax, 0x10
add esi, eax
mov eax, 0x7fff
add esi, edx
sar esi, 7
inc esi
sar esi, 1
cmp esi, eax
jle 0x461d70
mov esi, eax
jmp 0x461d7a
mov eax, 0xffff8000
cmp esi, eax
cmovl esi, eax
mov eax, dword [esp + 0x70]
mov edx, dword [esp + 0x30]
mov ebx, dword [esp + 0x1c4]
mov word [eax], si
mov esi, dword [esp + 0x88]
mov eax, dword [esp + 0x1c]
mov ecx, dword [esi + 0x110c]
sub ecx, dword [esp + 0x1cc]
mov eax, dword [eax + edx*4 + 0x3c0]
mov dword [esi + ecx*4 + 0x500], eax
mov eax, dword [esp + 0x1c]
mov ecx, dword [esi + 0x1108]
sub ecx, dword [esp + 0x1cc]
mov eax, dword [eax + edx*4 + 0x340]
mov edx, dword [esp + 0x180]
mov dword [edx + ecx*4], eax
jmp 0x461ddd
mov esi, dword [esp + 0x88]
inc dword [esi + 0x110c]
inc dword [esi + 0x1108]
test ebx, ebx
jle 0x461eb6
mov eax, dword [esp + 0x44]
lea ecx, [edi*4 + 0x240]
sub ecx, eax
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x14], ecx
lea esi, [esp + 0xb4]
mov ebx, dword [esp + 0x14]
lea ecx, [edi*4 + 0x340]
sub ecx, eax
lea edx, [eax + ebp]
mov dword [esp + 0x40], ecx
lea ebp, [edi*4 + 0x2c0]
lea ecx, [edi*4 + 0x3c0]
sub ebp, eax
sub ecx, eax
mov dword [esp + 0x78], ecx
lea ecx, [edi*4 + 0x1c0]
mov edi, dword [esp + 0x40]
sub ecx, eax
mov dword [esp + 0x74], ecx
mov ecx, dword [esp + 0x5c]
mov eax, dword [esi + 4]
mov dword [edx + ecx - 4], eax
mov eax, dword [esi]
lea esi, [esi + 0x30]
mov ecx, dword [esi - 0x38]
mov dword [edx], eax
mov dword [edx + ebp], eax
mov eax, dword [esi - 0x24]
mov dword [edx + ebx], ecx
add eax, eax
mov ebx, dword [esp + 0x78]
mov dword [edx + edi], eax
mov eax, dword [esi - 0x28]
sar ecx, 9
mov dword [edx + ebx], eax
inc ecx
mov ebx, dword [esp + 0x5c]
sar ecx, 1
add dword [edx + ebx], ecx
sub dword [esp + 0x1c], 1
mov ecx, dword [esp + 0x74]
mov eax, dword [edx + ebx]
mov dword [edx + ecx], eax
lea edx, [edx + 0x490]
mov eax, dword [esi - 0x34]
mov dword [edx + ebx - 0x488], eax
mov ebx, dword [esp + 0x14]
jne 0x461e48
mov ebx, dword [esp + 0x1c4]
mov ebp, dword [esp + 0x58]
mov edi, dword [esp + 0x38]
mov ecx, dword [esp + 0x184]
mov eax, dword [esp + 0xa8]
add dword [esp + 0x70], 2
sub dword [esp + 0x5c], 4
add dword [esp + 0x44], 4
mov edx, dword [esp + 0x60]
mov esi, dword [esp + 0x64]
mov dword [ecx + edi*4], eax
mov ecx, dword [esp + 0x48]
mov eax, dword [esp + 0x1b0]
inc ecx
mov edi, dword [esp + 0x4c]
cmp ecx, eax
mov dword [esp + 0x48], ecx
mov ecx, dword [esp + 0x18c]
jl 0x4612cc
test ebx, ebx
jle 0x461f20
lea esi, [eax*4]
mov edi, ebp
add esi, ebp
add ebp, 0x490
push 0x20
pop ecx
rep movsd dword es:[edi], dword [esi]
sub ebx, 1
jne 0x461f05
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x15c
ret