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

Disassembly:
sub esp, 0x30
push ebx
mov ebx, ecx
push ebp
push esi
push edi
mov eax, dword [ebx + 4]
mov dword [esp + 0x14], ebx
cmp dword [eax], 0
jne 0x4045ee
mov edx, dword [ebx + 8]
mov ecx, dword [edx + 0x10]
mov esi, dword [edx]
mov edx, dword [edx + 0xc]
dec esi
lea eax, [ecx - 0x36]
and eax, esi
cmp byte [eax + edx], 0x42
jne 0x4045ee
lea eax, [ecx - 0x35]
and eax, esi
cmp byte [eax + edx], 0x4d
jne 0x4045ee
push 0x2c
mov ecx, ebx
call fcn.00406810
cmp eax, 0x36
jne 0x4045ee
push 0x28
mov ecx, ebx
call fcn.00406810
cmp eax, 0x28
jne 0x4045ee
push 0x18
mov ecx, ebx
call fcn.00406810
test eax, eax
jne 0x4045ee
push 0x24
mov ecx, ebx
call fcn.00406810
add eax, 3
mov ecx, ebx
and eax, 0xfffffffc
push 0x20
lea esi, [eax + eax*2]
mov dword [ebx + 0x10], esi
call fcn.00406810
mov edx, eax
mov eax, dword [ebx + 8]
mov ecx, dword [eax + 0x10]
mov dword [ebx + 0x14], ecx
cmp esi, 0x30000
jge 0x4045e8
cmp edx, 0x10000
jge 0x4045e8
imul esi, edx
add esi, dword [eax + 0x10]
mov dword [ebx + 0x14], esi
jmp 0x4045ee
mov eax, dword [eax + 0x10]
mov dword [ebx + 0x14], eax
mov eax, dword [ebx + 4]
cmp dword [eax], 0
jne 0x404634
mov esi, dword [ebx]
mov eax, dword [ebx + 8]
mov dword [esp + 0x20], eax
cmp dword [esi], 0x49492a00
jne 0x40460f
mov ecx, dword [eax + 0x10]
mov dword [ebx + 0x18], ecx
jmp 0x404612
mov ecx, dword [ebx + 0x18]
mov edi, dword [eax + 0x10]
mov edx, edi
sub edx, ecx
mov dword [esp + 0x1c], ecx
cmp edx, 4
jne 0x404658
cmp dword [esi], 0x8000000
je 0x404658
mov dword [ebx + 0x18], 0
mov eax, dword [ebx + 4]
mov edi, dword [ebx + 8]
mov dword [esp + 0x3c], edi
mov ebp, dword [edi + 0x10]
cmp ebp, dword [ebx + 0x14]
jle 0x40485a
pop edi
pop esi
pop ebp
mov dword [ebx + 0x10], 0
xor eax, eax
pop ebx
add esp, 0x30
ret
test ecx, ecx
je 0x404631
cmp edx, 0xc8
jne 0x404631
mov esi, dword [eax + 0xc]
lea edx, [edi - 0xc4]
mov ecx, dword [eax]
xor ebp, ebp
dec ecx
mov dword [esp + 0x2c], 0
lea eax, [edx + 1]
mov dword [esp + 0x28], 0
and eax, ecx
mov dword [esp + 0x24], ebp
and ecx, edx
xor edx, edx
mov dword [esp + 0x18], edx
movzx edi, byte [eax + esi]
movzx eax, byte [ecx + esi]
mov esi, dword [ebx + 8]
mov ecx, dword [esp + 0x1c]
shl edi, 8
add ecx, 6
add edi, eax
mov dword [ebx + 0x10], 0
mov eax, dword [esi + 0x10]
add eax, 0xfffffff4
mov dword [esp + 0x38], eax
cmp ecx, eax
jge 0x404804
mov ebx, dword [esp + 0x1c]
add ebx, 6
lea ecx, [ebx + 1]
mov dword [esp + 0x1c], ecx
lea ebp, [ebx + 7]
dec edi
mov dword [esp + 0x3c], edi
test edi, edi
jle 0x4047f8
mov edx, dword [esi]
mov esi, dword [esi + 0xc]
dec edx
mov eax, edx
and eax, ecx
movzx ecx, byte [eax + esi]
mov eax, edx
and eax, ebx
shl ecx, 8
movzx eax, byte [eax + esi]
add eax, ecx
mov dword [esp + 0x34], eax
lea eax, [ebp - 4]
and eax, edx
movzx ecx, byte [eax + esi]
lea eax, [ebp - 5]
and eax, edx
shl ecx, 8
movzx eax, byte [eax + esi]
add eax, ecx
lea ecx, [ebp + 3]
mov dword [esp + 0x30], eax
and ecx, edx
mov eax, edx
and eax, ebp
movzx ecx, byte [ecx + esi]
movzx edi, byte [eax + esi]
lea eax, [ebp - 1]
and eax, edx
shl edi, 8
movzx eax, byte [eax + esi]
add edi, eax
lea eax, [ebp - 2]
and eax, edx
shl edi, 8
movzx eax, byte [eax + esi]
add edi, eax
lea eax, [ebp - 3]
and eax, edx
shl edi, 8
movzx eax, byte [eax + esi]
add edi, eax
lea eax, [ebp + 4]
and eax, edx
movzx eax, byte [eax + esi]
shl eax, 8
add eax, ecx
lea ecx, [ebp + 2]
and ecx, edx
shl eax, 8
movzx ecx, byte [ecx + esi]
add eax, ecx
lea ecx, [ebp + 1]
and ecx, edx
shl eax, 8
movzx ecx, byte [ecx + esi]
add eax, ecx
mov ecx, dword [esp + 0x30]
cmp ecx, 3
je 0x40478e
cmp ecx, 4
jne 0x4047cf
cmp edi, 1
jne 0x4047cf
mov ecx, dword [esp + 0x34]
cmp ecx, 0x100
jne 0x4047a5
mov dword [esp + 0x24], eax
jmp 0x4047cf
cmp ecx, 0x101
jne 0x4047b5
mov edx, eax
mov dword [esp + 0x18], edx
jmp 0x4047d3
cmp ecx, 0x103
jne 0x4047c3
mov dword [esp + 0x28], eax
jmp 0x4047cf
cmp ecx, 0x115
jne 0x4047cf
mov dword [esp + 0x2c], eax
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
add ebx, 0xc
mov edi, dword [esp + 0x3c]
add ecx, 0xc
mov esi, dword [esp + 0x20]
add ebp, 0xc
mov dword [esp + 0x1c], ecx
cmp ebx, dword [esp + 0x38]
jl 0x4046d4
jmp 0x4047fc
mov edx, dword [esp + 0x18]
mov ebx, dword [esp + 0x14]
mov ebp, dword [esp + 0x24]
test ebp, ebp
jle 0x404838
test edx, edx
jle 0x404838
imul edx, ebp
cmp edx, 0x32
jle 0x404838
cmp dword [esp + 0x28], 1
jne 0x404838
mov eax, dword [esp + 0x2c]
cmp eax, 1
je 0x404829
cmp eax, 3
jne 0x404838
imul edx, eax
add edx, dword [ebx + 0x18]
imul ebp, eax
mov dword [ebx + 0x14], edx
mov dword [ebx + 0x10], ebp
mov eax, dword [ebx + 0x14]
cmp eax, dword [esi + 0x10]
mov eax, dword [ebx + 4]
jg 0x404634
mov dword [ebx + 0x10], 0
mov dword [ebx + 0x18], 0
jmp 0x404634
cmp dword [eax], 0
jne 0x4050bb
mov eax, ebp
mov esi, dword [edi]
cdq
mov ecx, 3
idiv ecx
sub ebp, dword [ebx + 0x10]
dec esi
mov edi, dword [edi + 0xc]
mov ecx, dword [esp + 0x3c]
mov dword [esp + 0x18], edx
lea eax, [ebp - 3]
and eax, esi
movzx ebx, byte [eax + edi]
lea eax, [ebp + 3]
and eax, esi
movzx edx, byte [eax + edi]
mov eax, esi
and eax, ebp
movzx ebp, byte [eax + edi]
mov eax, dword [ecx + 0x10]
add eax, 0xfffffffd
and eax, esi
mov al, byte [eax + edi]
movzx ecx, al
mov byte [esp + 0x13], al
mov edi, dword [esp + 0x14]
lea esi, [ecx + ebp]
imul ecx, ecx
add esi, edx
imul edx, edx
add esi, ebx
imul ebx, ebx
mov eax, esi
imul eax, esi
shr esi, 2
mov dword [esp + 0x28], esi
movzx esi, byte [esp + 0x13]
shr esi, 4
shr eax, 2
sub ecx, eax
mov eax, ebp
imul eax, ebp
shr ebp, 4
add ecx, eax
add ecx, edx
imul edx, dword [esp + 0x18], 0x42c3047
add ecx, ebx
sar ecx, 2
movzx eax, cx
imul ecx, ebp, 0x2fb010f
mov dword [esp + 0x2c], edx
movzx eax, byte [eax + 0x4352c0]
mov dword [esp + 0x24], eax
imul eax, esi, 0x1c9d8f3
add ecx, edx
mov edx, dword [edi + 0x14c]
add eax, 0x55d4c60
add ecx, eax
lea eax, [edx + 1]
mov dword [edi + 0x14c], eax
mov eax, ecx
shr eax, 4
xor eax, dword [esp + 0x18]
xor eax, 0x7fffffe0
shr eax, 1
xor eax, ebp
shr eax, 1
xor eax, esi
shr eax, 3
xor eax, ecx
imul eax, eax, 0x3ade68b3
add eax, edx
rol eax, 0x10
imul ecx, eax, 0x75bcd17
mov eax, dword [edi + 0x134]
add ecx, edx
mov dword [eax + edx*4], ecx
mov eax, dword [edi + 8]
mov esi, dword [eax + 0x10]
mov edx, dword [eax]
mov edi, dword [eax + 0xc]
mov ebp, dword [esp + 0x2c]
lea eax, [esi - 1]
lea ecx, [edx - 1]
and ecx, eax
lea eax, [esi - 3]
movzx ebx, byte [ecx + edi]
lea ecx, [edx - 1]
and ecx, eax
shr ebx, 3
movzx edx, byte [ecx + edi]
mov edi, dword [esp + 0x14]
imul eax, edx, 0x1c9d8f3
imul ecx, ebx, 0x2fb010f
mov esi, dword [edi + 0x14c]
add eax, 0x11491a03
add ecx, ebp
add ecx, eax
lea eax, [esi + 1]
mov dword [edi + 0x14c], eax
mov eax, ecx
shr eax, 4
xor eax, dword [esp + 0x18]
xor eax, 0x7fffffe0
shr eax, 1
xor eax, ebx
shr eax, 1
xor eax, edx
shr eax, 3
xor eax, ecx
imul eax, eax, 0x3ade68b3
add eax, esi
rol eax, 0x10
imul ecx, eax, 0x75bcd17
mov eax, dword [edi + 0x134]
add ecx, esi
mov dword [eax + esi*4], ecx
mov eax, dword [edi + 8]
mov edx, dword [eax]
mov esi, dword [eax + 0x10]
mov edi, dword [eax + 0xc]
lea ecx, [edx - 1]
lea eax, [esi - 2]
and ecx, eax
lea eax, [esi - 3]
movzx ebx, byte [ecx + edi]
lea ecx, [edx - 1]
and ecx, eax
shr ebx, 3
movzx edx, byte [ecx + edi]
mov edi, dword [esp + 0x14]
imul eax, edx, 0x1c9d8f3
imul ecx, ebx, 0x2fb010f
mov esi, dword [edi + 0x14c]
add eax, 0x1d34e7a6
add ecx, ebp
add ecx, eax
lea eax, [esi + 1]
mov dword [edi + 0x14c], eax
mov eax, ecx
shr eax, 4
xor eax, dword [esp + 0x18]
xor eax, 0x7fffffe0
shr eax, 1
xor eax, ebx
shr eax, 1
xor eax, edx
shr eax, 3
xor eax, ecx
imul eax, eax, 0x3ade68b3
add eax, esi
rol eax, 0x10
imul ecx, eax, 0x75bcd17
mov eax, dword [edi + 0x134]
add ecx, esi
mov dword [eax + esi*4], ecx
mov eax, dword [edi + 8]
mov edx, dword [eax]
mov edi, dword [eax + 0x10]
mov esi, dword [eax + 0xc]
lea ecx, [edx - 1]
lea eax, [edi - 1]
and ecx, eax
mov eax, dword [esp + 0x14]
sub edi, dword [eax + 0x10]
lea eax, [edx - 1]
movzx ebx, byte [ecx + esi]
and edi, eax
shr ebx, 3
imul ecx, ebx, 0x2fb010f
movzx edx, byte [edi + esi]
mov edi, dword [esp + 0x14]
imul eax, edx, 0x1c9d8f3
add ecx, ebp
mov esi, dword [edi + 0x14c]
add eax, 0x2920b549
add ecx, eax
lea eax, [esi + 1]
mov dword [edi + 0x14c], eax
mov eax, ecx
shr eax, 4
xor eax, dword [esp + 0x18]
xor eax, 0x7fffffc0
shr eax, 1
xor eax, ebx
mov ebx, edi
shr eax, 1
xor eax, edx
shr eax, 3
xor eax, ecx
imul eax, eax, 0x3ade68b3
add eax, esi
rol eax, 0x10
imul ecx, eax, 0x75bcd17
mov eax, dword [ebx + 0x134]
add ecx, esi
mov dword [eax + esi*4], ecx
mov edx, dword [ebx + 8]
mov esi, dword [ebx + 0x14c]
mov ecx, dword [edx + 0x10]
mov eax, dword [edx]
sub ecx, 2
dec eax
and ecx, eax
mov eax, dword [edx + 0xc]
movzx edi, byte [ecx + eax]
mov ecx, dword [edx + 0x10]
sub ecx, dword [ebx + 0x10]
mov eax, dword [edx]
dec eax
shr edi, 3
and ecx, eax
mov eax, dword [edx + 0xc]
movzx edx, byte [ecx + eax]
imul ecx, edi, 0x2fb010f
imul eax, edx, 0x1c9d8f3
add ecx, ebp
add eax, 0x350c82ec
add ecx, eax
lea eax, [esi + 1]
mov dword [ebx + 0x14c], eax
mov eax, ecx
mov ebx, dword [esp + 0x18]
shr eax, 4
xor eax, ebx
xor eax, 0x7fffffc0
shr eax, 1
xor eax, edi
mov edi, dword [esp + 0x14]
shr eax, 1
xor eax, edx
shr eax, 3
xor eax, ecx
imul eax, eax, 0x3ade68b3
add eax, esi
rol eax, 0x10
imul ecx, eax, 0x75bcd17
mov eax, dword [edi + 0x134]
add ecx, esi
mov dword [eax + esi*4], ecx
mov esi, dword [edi + 8]
mov ecx, dword [esi + 0x10]
sub ecx, 2
mov eax, dword [esi]
dec eax
and ecx, eax
mov eax, dword [esi + 0xc]
movzx edx, byte [ecx + eax]
mov ecx, dword [esi + 0x10]
sub ecx, dword [edi + 0x10]
mov eax, dword [esi]
dec eax
shr edx, 5
and ecx, eax
mov eax, dword [esi + 0xc]
movzx edi, byte [ecx + eax]
mov ecx, dword [esi + 0x10]
mov eax, dword [esi]
sub ecx, 3
dec eax
and ecx, eax
mov eax, dword [esi + 0xc]
movzx eax, byte [ecx + eax]
add edi, eax
mov ecx, dword [esi + 0x10]
mov eax, dword [esi]
dec ecx
dec eax
shr edi, 3
and ecx, eax
mov eax, dword [esi + 0xc]
mov esi, dword [esp + 0x14]
movzx eax, byte [ecx + eax]
shr eax, 5
imul ecx, eax, 0x2fb010f
imul eax, edx, 0x42c3047
mov edx, dword [esi + 0x14c]
add ecx, eax
imul eax, edi, 0x1c9d8f3
add ecx, eax
imul eax, ebx, 0x68e8143
add eax, 0x4786d1d2
add ecx, eax
lea eax, [edx + 1]
mov dword [esi + 0x14c], eax
mov eax, ecx
xor eax, 0x200
shr eax, 3
xor eax, ebx
shr eax, 3
xor eax, edi
shr eax, 3
xor eax, ecx
imul eax, eax, 0x3ade68b3
add eax, edx
rol eax, 0x10
imul ecx, eax, 0x75bcd17
mov eax, dword [esi + 0x134]
add ecx, edx
mov dword [eax + edx*4], ecx
mov edx, dword [esp + 0x24]
imul eax, dword [esp + 0x28], 0x1c9d8f3
mov esi, dword [esi + 0x14c]
shr edx, 5
imul ecx, edx, 0x2fb010f
add eax, 0x4ce41e32
add ecx, ebp
mov ebp, dword [esp + 0x14]
add ecx, eax
lea eax, [esi + 1]
mov dword [ebp + 0x14c], eax
mov eax, ecx
shr eax, 4
xor eax, ebx
xor eax, 0x7fffffc0
shr eax, 1
xor eax, edx
shr eax, 1
xor eax, dword [esp + 0x28]
shr eax, 3
xor eax, ecx
imul eax, eax, 0x3ade68b3
add eax, esi
rol eax, 0x10
imul ecx, eax, 0x75bcd17
mov edx, ebp
mov eax, dword [edx + 0x134]
add ecx, esi
mov dword [eax + esi*4], ecx
mov edx, dword [edx + 8]
mov esi, dword [ebp + 0x14c]
mov ecx, dword [edx + 0x10]
mov eax, dword [edx]
sub ecx, 2
dec eax
and ecx, eax
mov eax, dword [edx + 0xc]
movzx edi, byte [ecx + eax]
mov ecx, dword [edx + 0x10]
mov eax, dword [edx]
dec ecx
dec eax
and ecx, eax
mov eax, dword [edx + 0xc]
movzx edx, byte [ecx + eax]
imul eax, edx, 0x1c9d8f3
imul ecx, edi, 0x2fb010f
add eax, 0x58cfebd5
add ecx, dword [esp + 0x2c]
add ecx, eax
lea eax, [esi + 1]
mov dword [ebp + 0x14c], eax
mov eax, ecx
shr eax, 4
xor eax, ebx
imul ebx, ebx, 0x2fb010f
xor eax, 0x7fffffa0
shr eax, 1
xor eax, edi
mov edi, ebp
shr eax, 1
xor eax, edx
shr eax, 3
xor eax, ecx
imul eax, eax, 0x3ade68b3
add eax, esi
rol eax, 0x10
imul ecx, eax, 0x75bcd17
mov eax, dword [edi + 0x134]
add ecx, esi
mov dword [eax + esi*4], ecx
mov edx, dword [edi + 8]
mov ecx, dword [edx + 0x10]
mov eax, dword [edx]
dec ecx
dec eax
and ecx, eax
mov eax, dword [edx + 0xc]
movzx esi, byte [ecx + eax]
mov ecx, dword [edx + 0x10]
mov eax, dword [edx]
sub ecx, 4
dec eax
and ecx, eax
mov eax, dword [edx + 0xc]
movzx eax, byte [ecx + eax]
mov ecx, dword [edx + 0x10]
sub esi, eax
mov eax, dword [edx]
sub ecx, 3
dec eax
and ecx, eax
mov eax, dword [edx + 0xc]
mov edx, dword [edi + 0x14c]
movzx eax, byte [ecx + eax]
lea ecx, [ebx + 0x608f8931]
add esi, eax
imul eax, esi, 0x1c9d8f3
add ecx, eax
lea eax, [edx + 1]
mov dword [edi + 0x14c], eax
mov eax, ecx
shr eax, 5
xor eax, dword [esp + 0x18]
xor eax, 0x40000020
shr eax, 1
xor eax, esi
shr eax, 3
xor eax, ecx
imul eax, eax, 0x3ade68b3
add eax, edx
rol eax, 0x10
imul ecx, eax, 0x75bcd17
mov eax, dword [edi + 0x134]
add ecx, edx
mov dword [eax + edx*4], ecx
mov eax, ebp
mov edi, dword [edi + 8]
mov esi, dword [eax + 0x10]
mov ecx, dword [edi + 0x10]
mov eax, dword [edi]
sub ecx, esi
dec eax
dec ecx
and ecx, eax
mov eax, dword [edi + 0xc]
movzx edx, byte [ecx + eax]
mov ecx, dword [edi + 0x10]
mov eax, dword [edi]
sub ecx, esi
dec eax
and ecx, eax
mov eax, dword [edi + 0xc]
movzx esi, byte [ecx + eax]
mov ecx, dword [edi + 0x10]
sub esi, edx
mov eax, dword [edi]
dec ecx
dec eax
and ecx, eax
mov eax, dword [edi + 0xc]
movzx eax, byte [ecx + eax]
lea ecx, [ebx + 0x6c7b56d4]
add esi, eax
mov ebx, ebp
imul eax, esi, 0x1c9d8f3
mov edx, dword [ebx + 0x14c]
add ecx, eax
lea eax, [edx + 1]
mov dword [ebx + 0x14c], eax
mov eax, ecx
shr eax, 5
xor eax, dword [esp + 0x18]
xor eax, 0x40000020
shr eax, 1
xor eax, esi
shr eax, 3
xor eax, ecx
imul eax, eax, 0x3ade68b3
add eax, edx
rol eax, 0x10
imul ecx, eax, 0x75bcd17
mov eax, dword [ebx + 0x134]
add ecx, edx
mov dword [eax + edx*4], ecx
mov edx, dword [ebx + 8]
mov ecx, dword [edx + 0x10]
sub ecx, dword [ebx + 0x10]
mov eax, dword [edx]
dec eax
and ecx, eax
mov eax, dword [edx + 0xc]
movzx esi, byte [ecx + eax]
mov ecx, dword [edx + 0x10]
mov eax, dword [edx]
sub ecx, 3
dec eax
and ecx, eax
mov eax, dword [edx + 0xc]
movzx eax, byte [ecx + eax]
add esi, eax
mov eax, dword [ebx + 0x1c]
shr esi, 1
sub eax, 0x100
shl esi, 8
and esi, eax
mov dword [ebx + 0x2c], esi
mov edi, dword [ebx + 8]
mov ecx, dword [edi + 0x10]
sub ecx, dword [ebx + 0x10]
mov eax, dword [edi]
sub ecx, 3
dec eax
and ecx, eax
mov eax, dword [edi + 0xc]
movzx edx, byte [ecx + eax]
mov ecx, dword [edi + 0x10]
sub ecx, dword [ebx + 0x10]
mov eax, dword [edi]
dec eax
and ecx, eax
mov eax, dword [edi + 0xc]
movzx esi, byte [ecx + eax]
mov ecx, dword [edi + 0x10]
sub esi, edx
mov eax, dword [edi]
sub ecx, 3
dec eax
and ecx, eax
mov eax, dword [edi + 0xc]
movzx eax, byte [ecx + eax]
add esi, eax
mov eax, dword [ebx + 0x34]
sub eax, 0x100
shl esi, 8
and esi, eax
mov dword [ebx + 0x44], esi
mov edi, dword [ebx + 8]
mov ecx, dword [edi + 0x10]
sub ecx, dword [ebx + 0x10]
mov eax, dword [edi]
add ecx, 3
dec eax
and ecx, eax
mov eax, dword [edi + 0xc]
movzx esi, byte [ecx + eax]
mov ecx, dword [edi + 0x10]
sub ecx, dword [ebx + 0x10]
mov eax, dword [edi]
dec eax
and ecx, eax
mov eax, dword [edi + 0xc]
movzx eax, byte [ecx + eax]
mov ecx, dword [edi + 0x10]
sub esi, eax
mov eax, dword [edi]
sub ecx, 3
dec eax
and ecx, eax
mov eax, dword [edi + 0xc]
movzx eax, byte [ecx + eax]
add esi, eax
mov eax, dword [ebx + 0x4c]
sub eax, 0x100
shl esi, 8
and esi, eax
mov dword [ebx + 0x5c], esi
mov esi, dword [ebx + 8]
mov ecx, dword [esi + 0x10]
mov eax, dword [esi]
sub ecx, 3
dec eax
and ecx, eax
mov eax, dword [esi + 0xc]
movzx edx, byte [ecx + eax]
mov ecx, dword [esi + 0x10]
add edx, edx
mov eax, dword [esi]
sub ecx, 6
dec eax
and ecx, eax
mov eax, dword [esi + 0xc]
movzx eax, byte [ecx + eax]
sub edx, eax
mov eax, dword [ebx + 0x64]
shl edx, 8
sub eax, 0x100
and edx, eax
mov dword [ebx + 0x74], edx
mov edi, dword [ebx + 8]
mov edx, dword [ebx + 0x10]
mov ecx, dword [edi + 0x10]
lea eax, [edx + edx]
sub ecx, eax
mov eax, dword [edi]
dec eax
and ecx, eax
mov eax, dword [edi + 0xc]
movzx esi, byte [ecx + eax]
mov ecx, dword [edi + 0x10]
mov eax, dword [edi]
sub ecx, edx
dec eax
and ecx, eax
mov eax, dword [edi + 0xc]
movzx ecx, byte [ecx + eax]
mov eax, dword [ebx + 0x7c]
add ecx, ecx
sub ecx, esi
sub eax, 0x100
shl ecx, 8
and ecx, eax
mov dword [ebx + 0x8c], ecx
mov edi, dword [ebx + 8]
mov edx, dword [ebx + 0x10]
mov ecx, dword [edi + 0x10]
lea eax, [edx*2 + 6]
sub ecx, eax
mov eax, dword [edi]
dec eax
and ecx, eax
mov eax, dword [edi + 0xc]
movzx esi, byte [ecx + eax]
mov ecx, dword [edi + 0x10]
mov eax, dword [edi]
sub ecx, edx
sub ecx, 3
dec eax
and ecx, eax
mov eax, dword [edi + 0xc]
movzx ecx, byte [ecx + eax]
mov eax, dword [ebx + 0x94]
add ecx, ecx
sub ecx, esi
sub eax, 0x100
shl ecx, 8
and ecx, eax
mov dword [ebx + 0xa4], ecx
mov ecx, 3
sub ecx, dword [ebx + 0x10]
mov edi, dword [ebx + 8]
mov eax, dword [edi + 0x10]
lea ecx, [eax + ecx*2]
mov eax, dword [edi]
dec eax
and ecx, eax
mov eax, dword [edi + 0xc]
movzx esi, byte [ecx + eax]
mov ecx, dword [edi + 0x10]
sub ecx, dword [ebx + 0x10]
mov eax, dword [edi]
add ecx, 3
dec eax
and ecx, eax
mov eax, dword [edi + 0xc]
movzx ecx, byte [ecx + eax]
mov eax, dword [ebx + 0xac]
add ecx, ecx
sub ecx, esi
sub eax, 0x100
shl ecx, 8
and ecx, eax
mov dword [ebx + 0xbc], ecx
mov edi, dword [ebx + 8]
mov ecx, dword [edi + 0x10]
sub ecx, dword [ebx + 0x10]
mov eax, dword [edi]
add ecx, 2
dec eax
and ecx, eax
mov eax, dword [edi + 0xc]
movzx edx, byte [ecx + eax]
mov ecx, dword [edi + 0x10]
sub ecx, dword [ebx + 0x10]
mov eax, dword [edi]
add ecx, 3
dec eax
and ecx, eax
mov eax, dword [edi + 0xc]
movzx esi, byte [ecx + eax]
mov ecx, dword [edi + 0x10]
sub esi, edx
mov eax, dword [edi]
dec ecx
dec eax
and ecx, eax
mov eax, dword [edi + 0xc]
movzx eax, byte [ecx + eax]
mov ecx, dword [esp + 0x28]
add esi, eax
mov eax, dword [ebx + 0xc4]
sub eax, 0x100
shl esi, 8
and esi, eax
shr ecx, 1
mov eax, dword [esp + 0x24]
and eax, 0xc0
mov dword [ebx + 0xd4], esi
add eax, eax
or ecx, eax
mov eax, dword [ebx + 0xdc]
shl ecx, 8
sub eax, 0x100
and ecx, eax
mov dword [ebx + 0xec], ecx
mov edi, dword [ebx + 0xc]
mov esi, dword [ebx + 0x30]
mov eax, dword [edi + 0x5c]
movzx edx, word [esi]
mov ecx, dword [eax]
shl ecx, 0x10
sub ecx, edx
add ecx, 0x40
sar ecx, 7
add ecx, edx
mov word [esi], cx
mov eax, dword [edi + 0x60]
mov ecx, dword [eax]
add ecx, dword [ebx + 0x2c]
mov eax, dword [ebx + 0x28]
lea eax, [eax + ecx*2]
mov dword [ebx + 0x30], eax
movzx eax, word [eax]
mov ecx, dword [edi + 0x44]
shr eax, 4
movzx edx, word [eax*2 + 0x4332c0]
lea eax, [ecx + 1]
mov dword [edi + 0x44], eax
mov eax, dword [edi + 0x18]
mov word [eax + ecx*2], dx
mov edi, dword [ebx + 0xc]
mov esi, dword [ebx + 0x48]
mov eax, dword [edi + 0x5c]
movzx edx, word [esi]
mov ecx, dword [eax]
shl ecx, 0x10
sub ecx, edx
add ecx, 0x40
sar ecx, 7
add ecx, edx
mov word [esi], cx
mov eax, dword [edi + 0x60]
mov ecx, dword [eax]
add ecx, dword [ebx + 0x44]
mov eax, dword [ebx + 0x40]
lea eax, [eax + ecx*2]
mov dword [ebx + 0x48], eax
movzx eax, word [eax]
mov ecx, dword [edi + 0x44]
shr eax, 4
movzx edx, word [eax*2 + 0x4332c0]
lea eax, [ecx + 1]
mov dword [edi + 0x44], eax
mov eax, dword [edi + 0x18]
mov word [eax + ecx*2], dx
mov edi, dword [ebx + 0xc]
mov esi, dword [ebx + 0x60]
mov eax, dword [edi + 0x5c]
movzx edx, word [esi]
mov ecx, dword [eax]
shl ecx, 0x10
sub ecx, edx
add ecx, 0x40
sar ecx, 7
add ecx, edx
mov word [esi], cx
mov eax, dword [edi + 0x60]
mov ecx, dword [eax]
add ecx, dword [ebx + 0x5c]
mov eax, dword [ebx + 0x58]
lea eax, [eax + ecx*2]
mov dword [ebx + 0x60], eax
movzx eax, word [eax]
mov ecx, dword [edi + 0x44]
shr eax, 4
movzx edx, word [eax*2 + 0x4332c0]
lea eax, [ecx + 1]
mov dword [edi + 0x44], eax
mov eax, dword [edi + 0x18]
mov word [eax + ecx*2], dx
mov edi, dword [ebx + 0xc]
mov esi, dword [ebx + 0x78]
mov eax, dword [edi + 0x5c]
movzx edx, word [esi]
mov ecx, dword [eax]
shl ecx, 0x10
sub ecx, edx
add ecx, 0x40
sar ecx, 7
add ecx, edx
mov word [esi], cx
mov eax, dword [edi + 0x60]
mov ecx, dword [eax]
add ecx, dword [ebx + 0x74]
mov eax, dword [ebx + 0x70]
lea eax, [eax + ecx*2]
mov dword [ebx + 0x78], eax
movzx eax, word [eax]
mov ecx, dword [edi + 0x44]
shr eax, 4
movzx edx, word [eax*2 + 0x4332c0]
lea eax, [ecx + 1]
mov dword [edi + 0x44], eax
mov eax, dword [edi + 0x18]
mov word [eax + ecx*2], dx
mov edi, dword [ebx + 0xc]
mov esi, dword [ebx + 0x90]
mov eax, dword [edi + 0x5c]
movzx edx, word [esi]
mov ecx, dword [eax]
shl ecx, 0x10
sub ecx, edx
add ecx, 0x40
sar ecx, 7
add ecx, edx
mov word [esi], cx
mov eax, dword [edi + 0x60]
mov ecx, dword [eax]
add ecx, dword [ebx + 0x8c]
mov eax, dword [ebx + 0x88]
lea eax, [eax + ecx*2]
mov dword [ebx + 0x90], eax
movzx eax, word [eax]
mov ecx, dword [edi + 0x44]
shr eax, 4
movzx edx, word [eax*2 + 0x4332c0]
lea eax, [ecx + 1]
mov dword [edi + 0x44], eax
mov eax, dword [edi + 0x18]
mov word [eax + ecx*2], dx
mov edi, dword [ebx + 0xc]
mov esi, dword [ebx + 0xa8]
mov eax, dword [edi + 0x5c]
movzx edx, word [esi]
mov ecx, dword [eax]
shl ecx, 0x10
sub ecx, edx
add ecx, 0x40
sar ecx, 7
add ecx, edx
mov word [esi], cx
mov eax, dword [edi + 0x60]
mov ecx, dword [eax]
add ecx, dword [ebx + 0xa4]
mov eax, dword [ebx + 0xa0]
lea eax, [eax + ecx*2]
mov dword [ebx + 0xa8], eax
movzx eax, word [eax]
mov ecx, dword [edi + 0x44]
shr eax, 4
movzx edx, word [eax*2 + 0x4332c0]
lea eax, [ecx + 1]
mov dword [edi + 0x44], eax
mov eax, dword [edi + 0x18]
mov word [eax + ecx*2], dx
mov edi, dword [ebx + 0xc]
mov esi, dword [ebx + 0xc0]
mov eax, dword [edi + 0x5c]
movzx edx, word [esi]
mov ecx, dword [eax]
shl ecx, 0x10
sub ecx, edx
add ecx, 0x40
sar ecx, 7
add ecx, edx
mov word [esi], cx
mov eax, dword [edi + 0x60]
mov ecx, dword [eax]
add ecx, dword [ebx + 0xbc]
mov eax, dword [ebx + 0xb8]
lea eax, [eax + ecx*2]
mov dword [ebx + 0xc0], eax
movzx eax, word [eax]
mov ecx, dword [edi + 0x44]
shr eax, 4
movzx edx, word [eax*2 + 0x4332c0]
lea eax, [ecx + 1]
mov dword [edi + 0x44], eax
mov eax, dword [edi + 0x18]
mov word [eax + ecx*2], dx
mov edi, dword [ebx + 0xc]
mov esi, dword [ebx + 0xd8]
mov eax, dword [edi + 0x5c]
movzx edx, word [esi]
mov ecx, dword [eax]
shl ecx, 0x10
sub ecx, edx
add ecx, 0x40
sar ecx, 7
add ecx, edx
mov word [esi], cx
mov eax, dword [edi + 0x60]
mov ecx, dword [eax]
add ecx, dword [ebx + 0xd4]
mov eax, dword [ebx + 0xd0]
lea eax, [eax + ecx*2]
mov dword [ebx + 0xd8], eax
movzx eax, word [eax]
mov ecx, dword [edi + 0x44]
shr eax, 4
movzx edx, word [eax*2 + 0x4332c0]
lea eax, [ecx + 1]
mov dword [edi + 0x44], eax
mov eax, dword [edi + 0x18]
mov word [eax + ecx*2], dx
mov edi, dword [ebx + 0xc]
mov esi, dword [ebx + 0xf0]
mov eax, dword [edi + 0x5c]
movzx edx, word [esi]
mov ecx, dword [eax]
shl ecx, 0x10
sub ecx, edx
add ecx, 0x40
sar ecx, 7
add ecx, edx
mov word [esi], cx
mov eax, dword [edi + 0x60]
mov ecx, dword [eax]
add ecx, dword [ebx + 0xec]
mov eax, dword [ebx + 0xe8]
lea eax, [eax + ecx*2]
mov dword [ebx + 0xf0], eax
movzx eax, word [eax]
mov ecx, dword [edi + 0x44]
shr eax, 4
movzx edx, word [eax*2 + 0x4332c0]
lea eax, [ecx + 1]
mov dword [edi + 0x44], eax
mov eax, dword [edi + 0x18]
mov word [eax + ecx*2], dx
mov esi, dword [ebx + 0xc]
mov edx, dword [esi + 0x6c]
mov eax, dword [esi + 0x5c]
mov ecx, dword [edx + 0x10]
push dword [eax]
mov eax, dword [edx]
dec ecx
dec eax
and ecx, eax
mov eax, dword [edx + 0xc]
movzx eax, byte [ecx + eax]
lea ecx, [ebx + 0xf4]
push eax
mov eax, dword [esi + 0x68]
push dword [eax]
mov eax, dword [esi + 0x60]
push dword [eax]
push esi
call fcn.00409680
mov eax, dword [ebx + 0x10]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x30
ret