Function at 0x103f9d40
Capabilities:
Encrypt data using rc4 ksa
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x40c
mov eax, dword [0x11ad127c]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
mov edx, dword [ebp + 0x1c]
push ebx
mov ebx, ecx
mov dword [ebp - 0x3d4], eax
mov ecx, dword [ebp + 0x10]
mov dword [ebp - 0x408], ecx
mov ecx, dword [ebp + 0x18]
mov dword [ebp - 0x3f0], ecx
mov ecx, dword [ebp + 0x14]
mov dword [ebp - 0x40c], ecx
test cl, cl
je 0x103f9db9
mov eax, dword [ebx + 0x1660]
test edx, edx
je 0x103f9da1
mov dword [ebx + edx*4 + 0x2c84], eax
mov eax, dword [ebx + 0x1664]
mov dword [ebx + edx*4 + 0x2c94], eax
jmp 0x103f9db3
mov dword [ebx + 0x2c5c], eax
mov eax, dword [ebx + 0x1664]
mov dword [ebx + 0x2c60], eax
mov eax, dword [ebp - 0x3d4]
cmp byte [ebx + 0x165c], 0
jne 0x103f9dca
mov eax, dword [eax + 0xb0]
jmp 0x103f9dd0
mov eax, dword [ebx + 0x1658]
mov dword [ebp - 0x3ec], eax
test eax, eax
jne 0x103f9df0
mov eax, 0x14
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.1045066c
mov esp, ebp
pop ebp
ret 0x18
mov eax, dword [ebx]
push esi
mov eax, dword [eax + 8]
mov eax, dword [eax + 0x1c]
mov ecx, dword [eax + 0x4c]
mov edx, dword [eax + 0x50]
mov esi, dword [eax + 0x48]
mov eax, dword [eax + 0x44]
test al, 8
jne 0x103f9e69
test eax, 0x400
jne 0x103f9e69
test ecx, ecx
js 0x103f9e69
test edx, 0x20000000
jne 0x103f9e69
test eax, 0x8000000
jne 0x103f9e69
test ecx, 0x100
jne 0x103f9e69
test esi, 0x800000
jne 0x103f9e69
mov eax, dword [ebx + 0x9c]
mov ecx, dword [ebx + 0x2c]
and eax, 3
push 0
mov byte [ebp - 0x3d8], 0
push dword [ebp - 0x3d8]
push 1
push eax
mov eax, dword [ebx + 0x20]
shl eax, cl
push eax
mov eax, dword [ebx + 0x1c]
shl eax, cl
push eax
lea eax, [ebx + 0x1588]
push eax
call fcn.102fdd80
mov ecx, dword [ebx + 0x2c]
movzx eax, word [ebx + 0x1c]
shl ax, cl
dec ax
mov esi, dword [ebx + 0x58]
mov word [ebx + 0x3c], ax
and esi, 0xffffff80
movzx eax, word [ebx + 0x20]
or esi, 0x80
shl ax, cl
dec ax
mov dword [ebx + 0x58], esi
mov word [ebx + 0x3e], ax
movzx eax, word [ebx + 0x1594]
mov word [ebx + 0x40], ax
movzx eax, word [ebx + 0x1598]
mov word [ebx + 0x42], ax
mov eax, dword [ebx + 0x15a8]
mov dword [ebx + 0x48], eax
mov eax, dword [ebx + 0x15b0]
mov dword [ebx + 0x50], eax
mov eax, dword [ebx + 0x15ac]
mov dword [ebx + 0x4c], eax
mov eax, dword [ebx + 0x15b4]
mov dword [ebx + 0x54], eax
mov eax, dword [ebx]
push edi
mov eax, dword [eax + 8]
mov eax, dword [eax + 0x1c]
mov edx, dword [eax + 0x50]
mov ecx, dword [eax + 0x4c]
mov edi, dword [eax + 0x48]
mov eax, dword [eax + 0x44]
test al, 8
jne 0x103f9f16
test eax, 0x400
jne 0x103f9f16
test ecx, ecx
js 0x103f9f16
test edx, 0x20000000
jne 0x103f9f16
test eax, 0x8000000
jne 0x103f9f16
test ecx, 0x100
jne 0x103f9f16
test edi, 0x800000
je 0x103f9fee
mov edi, dword [ebp - 0x3d4]
mov eax, dword [edi + 0x18]
mov eax, dword [ebx + eax*4 + 0x15c8]
mov eax, dword [eax]
cmp byte [eax + 0x1b4], 0
je 0x103f9f39
mov eax, dword [eax + 0x1b0]
jmp 0x103f9f3f
mov eax, dword [eax + 0x74]
mov eax, dword [eax + 0x28]
mov ecx, dword [ebx + 0x159c]
xor edx, edx
movzx eax, ax
or esi, 2
div ecx
xor edx, edx
and esi, 0xffffff7f
mov word [ebx + 0x40], ax
mov eax, dword [edi + 0x18]
mov eax, dword [ebx + eax*4 + 0x15c8]
mov eax, dword [eax]
mov eax, dword [eax + 0x74]
movzx eax, word [eax + 0x2c]
div ecx
mov dword [ebx + 0x48], 0
mov word [ebx + 0x42], ax
mov eax, dword [edi + 0x18]
mov eax, dword [ebx + eax*4 + 0x15c8]
mov eax, dword [eax]
mov eax, dword [eax + 0x74]
mov eax, dword [eax + 0xf0]
shr eax, 8
mov dword [ebx + 0x4c], eax
mov eax, dword [edi + 0x18]
mov eax, dword [ebx + eax*4 + 0x15c8]
mov eax, dword [eax]
mov eax, dword [eax + 0x74]
mov eax, dword [eax + 0xf8]
shr eax, 8
mov dword [ebx + 0x50], eax
mov eax, dword [edi + 0x18]
mov eax, dword [ebx + eax*4 + 0x15c8]
mov eax, dword [eax]
mov eax, dword [eax + 0x74]
mov eax, dword [eax + 0xfc]
shr eax, 8
mov dword [ebx + 0x54], eax
mov eax, dword [ebx + 0x9c]
and eax, 3
mov dword [ebx + 0x58], esi
cmp al, 3
jne 0x103f9ff4
or esi, 0x300
mov dword [ebx + 0x4c], 0
mov dword [ebx + 0x58], esi
jmp 0x103f9ff4
mov edi, dword [ebp - 0x3d4]
mov eax, dword [ebx + 0xa8]
movups xmm0, xmmword [ebx + 0x3c]
mov ecx, dword [ebx + 4]
and eax, 0x3c000000
neg eax
movups xmmword [ebx + 0x7c], xmm0
sbb eax, eax
movups xmm0, xmmword [ebx + 0x4c]
neg eax
inc eax
movzx eax, ax
mov dword [ebp - 0x3dc], eax
mov eax, dword [ebp - 0x3ec]
movups xmmword [ebx + 0x8c], xmm0
push dword [eax + 0x14]
call fcn.100822d0
test al, al
je 0x103fa05d
mov eax, dword [ebx + 0x9c]
and al, 3
cmp al, 2
jne 0x103fa056
mov cl, byte [ebp - 0x3dc]
mov eax, 1
shl ax, cl
movzx edx, ax
jmp 0x103fa063
mov edx, 4
jmp 0x103fa063
mov edx, dword [ebp - 0x3dc]
test dword [edi + 0x208], 0x1000000
je 0x103fa08d
movzx eax, word [ebx + 0x18]
mov ecx, 0xfffe
inc ax
and ax, cx
dec ax
movzx esi, ax
movzx eax, word [ebx + 0x14]
inc ax
and ax, cx
jmp 0x103fa0a3
movzx eax, word [ebx + 0x20]
mov ecx, dword [ebx + 0x2c]
shl ax, cl
dec ax
movzx esi, ax
movzx eax, word [ebx + 0x1c]
shl ax, cl
dec ax
movzx eax, ax
mov word [ebx + 0x5c], ax
mov word [ebx + 0x5e], si
mov esi, dword [ebp - 0x3ec]
mov eax, dword [esi]
cmp byte [eax + 0x1b4], 0
je 0x103fa0c9
mov eax, dword [eax + 0x1b0]
jmp 0x103fa0cf
mov eax, dword [eax + 0x74]
mov eax, dword [eax + 0x28]
movzx ecx, dx
xor edx, edx
movzx eax, ax
div ecx
mov dword [ebp - 0x404], ecx
mov word [ebx + 0x60], ax
mov eax, dword [esi]
cmp byte [eax + 0x1b4], 0
je 0x103fa0f6
mov eax, dword [eax + 0x1b0]
jmp 0x103fa0fc
mov eax, dword [eax + 0x74]
mov eax, dword [eax + 0x28]
movzx eax, ax
xor edx, edx
div ecx
mov ecx, dword [ebx + 0x78]
mov word [ebx + 0x62], ax
and ecx, 0xfffffcff
mov dword [ebx + 0x68], 0
mov dword [ebx + 0x6c], 0
mov eax, dword [esi]
mov eax, dword [eax + 0x74]
mov eax, dword [eax + 0xf8]
shr eax, 8
mov dword [ebx + 0x70], eax
mov dword [ebx + 0x74], 0
mov dword [ebx + 0x78], ecx
mov eax, dword [esi]
mov eax, dword [eax + 0x74]
cmp byte [eax + 0xbd], 0
je 0x103fa179
and ecx, 0xffffff82
or ecx, 2
and ecx, 0xffffff7f
mov dword [ebx + 0x78], ecx
push dword [esi + 0x14]
mov ecx, dword [ebx + 4]
call fcn.100822d0
xor ecx, ecx
mov edx, 0x2000
test al, al
mov eax, dword [ebx + 0x78]
cmovne ecx, edx
and eax, 0xffffdfff
or ecx, eax
jmp 0x103fa193
and ecx, 0xffffff80
mov dword [ebx + 0x78], ecx
mov eax, dword [esi]
mov eax, dword [eax + 0x74]
cmp byte [eax + 0xbc], 0
je 0x103fa196
or ecx, 0x80
mov dword [ebx + 0x78], ecx
mov eax, dword [ebx + 0x9c]
and eax, 3
cmp al, 3
jne 0x103fa1b7
mov ax, word [ebx + 0x60]
or ecx, 0x300
add ax, ax
mov dword [ebx + 0x78], ecx
mov word [ebx + 0x62], ax
lea eax, [ebx + 0x10c]
lea esi, [edi + 0x120]
test eax, eax
je 0x103fa1e6
test esi, esi
je 0x103fa1d6
mov ecx, 0x86
mov edi, eax
rep movsd dword es:[edi], dword [esi]
jmp 0x103fa1f6
push 0x218
push 0
push eax
call fcn.10425c00
add esp, 0xc
call fcn.1043a2d6
mov dword [eax], 0x16
call fcn.1043a1d8
mov eax, dword [ebx + 0x16a4]
mov esi, dword [ebx + 0x1e0]
mov ecx, dword [ebx + 0x2c]
and esi, 0xfffffff7
mov edi, dword [ebx + 0x1c]
sub ecx, 4
mov dword [ebx + 0x1c4], eax
mov edx, edi
mov eax, dword [ebx + 0x169c]
mov dword [ebx + 0x1cc], eax
mov eax, dword [ebx + 0x1698]
mov dword [ebx + 0x1c8], eax
mov eax, dword [ebx + 0x16a0]
mov dword [ebx + 0x1d0], eax
mov eax, dword [ebx + 0x16a8]
mov dword [ebx + 0x2e8], eax
mov eax, dword [ebx]
mov dword [ebx + 0x1e0], esi
mov dword [ebx + 0x1b4], 0
mov dword [ebx + 0x1c0], 0
mov byte [ebx + 0x2ec], 0
mov eax, dword [eax + 8]
shl edx, cl
mov eax, dword [eax + 0x1c]
test dword [eax + 0x44], 0x8000000
jne 0x103fa297
test dword [eax + 0x4c], 0x100
jne 0x103fa297
test dword [eax + 0x48], 0x800000
jne 0x103fa297
lea eax, [edx + 1]
lea eax, [eax + eax*2]
shl eax, 6
jmp 0x103fa29c
mov eax, 0x180
imul eax, edx
add eax, 0xff
and eax, 0xffffff00
cmp dword [ebx + 0xc], 0
mov dword [ebx + 0x1d4], eax
mov eax, dword [ebx + 0x15c0]
mov eax, dword [eax + 0x74]
mov eax, dword [eax + 0x24]
mov dword [ebx + 0x1d8], eax
mov dword [ebx + 0x1dc], 0
mov dword [ebx + 0x1e4], 0
je 0x103fa2e2
mov ecx, 2
jmp 0x103fa2ed
xor ecx, ecx
cmp byte [ebx + 0x16b0], cl
setne cl
mov eax, dword [ebx + 0x1bc]
mov edx, dword [ebx + 0x20]
and eax, 0xfffffcff
shl ecx, 8
or ecx, eax
imul edx, edi
mov dword [ebx + 0x1bc], ecx
xor ecx, ecx
cmp edx, 1
jle 0x103fa31c
mov eax, 1
rol eax, 1
inc ecx
cmp eax, edx
jl 0x103fa315
mov edi, dword [ebp - 0x3d4]
lea eax, [ebx + 0xac]
shl ecx, 8
xor ecx, esi
and ecx, 0x3f00
xor ecx, esi
mov dword [ebx + 0x1e0], ecx
lea ecx, [edi + 0xc0]
test eax, eax
je 0x103fa386
test ecx, ecx
je 0x103fa379
movups xmm0, xmmword [ecx]
movups xmmword [eax], xmm0
movups xmm0, xmmword [ecx + 0x10]
movups xmmword [eax + 0x10], xmm0
movups xmm0, xmmword [ecx + 0x20]
movups xmmword [eax + 0x20], xmm0
movups xmm0, xmmword [ecx + 0x30]
movups xmmword [eax + 0x30], xmm0
movups xmm0, xmmword [ecx + 0x40]
movups xmmword [eax + 0x40], xmm0
movups xmm0, xmmword [ecx + 0x50]
movups xmmword [eax + 0x50], xmm0
jmp 0x103fa396
push 0x60
push 0
push eax
call fcn.10425c00
add esp, 0xc
call fcn.1043a2d6
mov dword [eax], 0x16
call fcn.1043a1d8
cmp byte [ebx + 0x165c], 0
mov ecx, ebx
je 0x103fa3c8
shr dword [ebx + 0xc8], 2
mov al, 0x21
shr dword [ebx + 0xcc], 2
shr dword [ebx + 0xd0], 2
shr dword [ebx + 0xd4], 2
shr dword [ebx + 0xd8], 2
jmp 0x103fa3ca
xor al, al
mov byte [ecx + 0xf8], al
mov eax, dword [ebx + 0xc]
cmp eax, dword [ebx + 0x10]
jne 0x103fa3e5
cmp byte [ebx + 0x16b0], 0
jne 0x103fa3e5
mov al, 1
jmp 0x103fa3e7
xor al, al
mov byte [ebx + 0xf6], al
mov eax, dword [ebx]
mov byte [ebp - 0x3dc], 0
mov eax, dword [eax + 8]
mov eax, dword [eax + 0x1c]
test dword [eax + 0x48], 0x800000
je 0x103fa416
or dword [ebx + 0x344], 0x80000000
mov byte [ebp - 0x3dc], 1
push dword [ebp - 0x3dc]
movzx eax, word [ebx + 0x7e]
mov ecx, dword [ebx + 4]
inc eax
push eax
movzx eax, word [ebx + 0x7c]
inc eax
push eax
call fcn.103e5870
mov ecx, dword [ebx + 0x344]
lea esi, [ebx + 0x4b8]
xor ecx, eax
mov eax, dword [ebx + 0x348]
push 0x1000
and eax, 0xff00000e
and ecx, 0x7fffffff
xor dword [ebx + 0x344], ecx
or eax, 0xe
push 0
push esi
mov dword [ebx + 0x348], eax
call fcn.10425c00
add esp, 0xc
cmp byte [edi + 0x37d], 0
je 0x103fa65e
cmp dword [edi + 0x384], 0
je 0x103fa65e
mov esi, dword [edi + 0x380]
mov dword [ebp - 0x3d8], esi
lea eax, [esi - 1]
cmp eax, 0x3f
ja 0x103fa658
mov edx, dword [ebx + 0x1c]
xor eax, eax
xor ecx, ecx
mov dword [ebp - 0x3e4], eax
cmp byte [ebx + 0x165c], al
mov dword [ebp - 0x3f8], ecx
setne cl
mov dword [ebp - 0x3dc], eax
shl edx, cl
mov dword [ebp - 0x3e8], edx
mov edx, dword [ebx + 0x20]
shl edx, cl
mov dword [ebp - 0x3fc], edx
xor edx, edx
test esi, esi
jle 0x103fa63d
xor ecx, ecx
lea esi, [ebx + 0x4c4]
mov dword [ebp - 0x3f4], ecx
lea edi, [ebx + 0x4b8]
mov eax, dword [ebp - 0x3d4]
inc edx
mov dword [ebp - 0x400], edx
mov eax, dword [eax + 0x384]
add eax, ecx
mov ecx, dword [ebp - 0x3d4]
movups xmm0, xmmword [eax]
movups xmmword [edi], xmm0
movups xmm0, xmmword [eax + 0x10]
movups xmmword [edi + 0x10], xmm0
movups xmm0, xmmword [eax + 0x20]
movups xmmword [edi + 0x20], xmm0
movups xmm0, xmmword [eax + 0x30]
movups xmmword [edi + 0x30], xmm0
mov eax, dword [ecx + 0xa4]
add eax, eax
xor eax, dword [esi]
and eax, 0x3e
xor dword [esi], eax
mov ecx, dword [ecx + 0xa8]
shl ecx, 6
xor ecx, dword [esi]
and ecx, 0x7c0
xor dword [esi], ecx
cmp byte [ebx + 0x165c], 0
je 0x103fa5ce
mov eax, dword [edi]
mov ecx, dword [ebp - 0x3dc]
and eax, 0x7ffff
add ecx, eax
mov dword [ebp - 0x3dc], ecx
cmp edx, dword [ebp - 0x3d8]
jge 0x103fa5a1
mov eax, dword [ebp - 0x3e8]
dec eax
add eax, ecx
mov ecx, dword [ebp - 0x3fc]
cdq
idiv dword [ebp - 0x3e8]
sar ecx, 1
xor edx, edx
imul eax, dword [ebx + 0x20]
add eax, ecx
div dword [ebp - 0x3fc]
mov ecx, eax
mov eax, dword [ebx + 0x20]
jmp 0x103fa5a6
mov ecx, dword [ebx + 0x20]
mov eax, ecx
cmp ecx, eax
cmovge ecx, eax
imul ecx, dword [ebx + 0x1c]
mov edx, ecx
sub edx, dword [ebp - 0x3f8]
test edx, edx
jle 0x103fa5e0
mov eax, dword [edi]
xor eax, edx
mov dword [ebp - 0x3f8], ecx
and eax, 0x7ffff
xor dword [edi], eax
jmp 0x103fa5d4
mov dword [ebp - 0x400], edx
inc dword [ebp - 0x3e4]
add edi, 0x40
add esi, 0x40
mov edx, dword [ebx + 0xa4]
mov eax, edx
mov ecx, dword [esi]
shr eax, 7
xor eax, ecx
test al, 0x3e
jne 0x103fa604
shr edx, 7
xor edx, ecx
test edx, 0x7c0
jne 0x103fa604
xor eax, eax
jmp 0x103fa609
mov eax, 1
mov edx, dword [ebp - 0x400]
and ecx, 0xfffffffe
or ecx, eax
mov dword [esi], ecx
mov ecx, dword [ebp - 0x3f4]
add ecx, 0x40
mov dword [ebp - 0x3f4], ecx
cmp edx, dword [ebp - 0x3d8]
jl 0x103fa4f3
mov eax, dword [ebp - 0x3e4]
mov edi, dword [ebp - 0x3d4]
mov ecx, ebx
dec al
mov byte [ebx + 0x1c0], al
lea esi, [ecx + 0x4c4]
mov dword [ebp - 0x3f4], esi
jmp 0x103fa77c
lea esi, [ebx + 0x4b8]
mov ecx, dword [ebx + 0x1c]
mov edx, 2
imul ecx, dword [ebx + 0x20]
and ecx, 0x7ffff
mov dword [esi], ecx
mov eax, dword [ebx + 0x1e0]
and eax, 3
cmp eax, 3
cmove eax, edx
movsx eax, byte [eax + ebx + 0xad]
movzx eax, al
shl eax, 0x13
or eax, ecx
mov dword [esi], eax
lea esi, [ebx + 0x4c4]
mov ecx, dword [edi]
mov eax, dword [ebx + 0x4bc]
and ecx, 3
and eax, 0xffffffc1
mov dword [ebp - 0x3f4], esi
add ecx, ecx
or ecx, eax
mov dword [ebx + 0x4bc], ecx
and ecx, 0xfccc03bf
mov eax, dword [edi + 4]
and eax, 1
or eax, 0x33000
shl eax, 6
or eax, ecx
mov dword [ebx + 0x4bc], eax
and eax, 0xfffffd7f
mov ecx, dword [edi + 8]
and ecx, 1
shl ecx, 9
or ecx, eax
mov dword [ebx + 0x4bc], ecx
mov eax, dword [edi + 0xc]
shl eax, 8
xor eax, ecx
and eax, 0x100
xor eax, ecx
mov dword [ebx + 0x4bc], eax
mov ecx, dword [edi + 0x10]
xor ecx, dword [ebx + 0x4c0]
and ecx, 0xf
xor ecx, dword [ebx + 0x4c0]
mov dword [ebx + 0x4c0], ecx
mov eax, dword [edi + 0x14]
shl eax, 4
xor eax, ecx
and eax, 0xf0
xor eax, ecx
mov dword [ebx + 0x4c0], eax
mov ecx, dword [edi + 0xa4]
add ecx, ecx
xor ecx, dword [esi]
and ecx, 0x3e
xor ecx, dword [esi]
mov dword [esi], ecx
mov eax, dword [edi + 0xa8]
mov edx, dword [ebx + 0xa4]
shl eax, 6
xor eax, ecx
and eax, 0x7c0
xor ecx, eax
mov eax, edx
shr eax, 7
xor eax, ecx
test al, 0x3e
jne 0x103fa770
shr edx, 7
xor edx, ecx
test edx, 0x7c0
jne 0x103fa770
xor eax, eax
jmp 0x103fa775
mov eax, 1
and ecx, 0xfffffffe
or ecx, eax
mov dword [esi], ecx
mov esi, dword [esi]
mov ecx, 8
shr esi, 1
and esi, 0x1f
inc esi
cmp esi, ecx
jae 0x103fa7b3
lea eax, [ebx + 0x304]
mov edx, ecx
add eax, esi
sub edx, esi
nop dword [eax]
mov byte [eax - 0x1f8], 0xfe
lea eax, [eax + 1]
mov byte [eax - 1], 0xff
sub edx, 1
jne 0x103fa7a0
mov edx, dword [ebp - 0x3f4]
mov edx, dword [edx]
shr edx, 6
and edx, 0x1f
inc edx
cmp edx, ecx
jae 0x103fa7e3
lea eax, [ebx + 0x30c]
add eax, edx
sub ecx, edx
mov byte [eax - 0x1f8], 0xfe
lea eax, [eax + 1]
mov byte [eax - 1], 0xff
sub ecx, 1
jne 0x103fa7d0
cmp byte [ebx + 0x2ee], 1
jbe 0x103fa9db
xor cl, cl
mov byte [ebp - 0x3cd], cl
nop dword [eax + eax]
cmp byte [ebx + 0x165c], 0
movzx ecx, cl
mov eax, dword [edi + ecx*4 + 0x1c]
lea esi, [ebx + ecx*4]
je 0x103fa841
lea edx, [eax + 1]
shr edx, 1
mov dword [esi + 0x2cac], edx
movzx eax, byte [ebx + 0x2ee]
dec eax
cmp ecx, eax
jne 0x103fa847
mov eax, edx
imul eax, ecx
mov ecx, dword [ebx + 0x20]
sub ecx, eax
cmp edx, ecx
cmovae edx, ecx
mov dword [esi + 0x2cac], edx
jmp 0x103fa847
mov dword [esi + 0x2cac], eax
mov cl, byte [ebp - 0x3cd]
inc cl
mov byte [ebp - 0x3cd], cl
cmp cl, byte [ebx + 0x2ee]
jb 0x103fa800
mov al, byte [ebx + 0x2ed]
xor ecx, ecx
movzx esi, al
mov dword [ebp - 0x3e4], ecx
mov dword [ebp - 0x3d8], esi
test al, al
je 0x103fa899
lea eax, [ebx + 0x2cac]
mov edx, esi
add ecx, dword [eax]
lea eax, [eax + 4]
mov word [ebx + 0x2f0], cx
sub edx, 1
jne 0x103fa880
mov dword [ebp - 0x3e4], ecx
jmp 0x103fa89f
mov dword [ebp - 0x3d8], esi
mov ax, word [ebx + esi*4 + 0x2cac]
mov edi, 1
mov word [ebx + 0x2f2], ax
mov eax, dword [ebx + 0x9c]
mov ecx, eax
and eax, 3
shr ecx, 9
mov dword [ebp - 0x400], eax
and ecx, 3
add ecx, 3
mov byte [ebx + 0x2ef], 0
shl edi, cl
movzx ecx, word [ebx + 0x40]
mov eax, edi
cdq
mov esi, edi
sub eax, edx
mov edx, dword [ebx + 0xa0]
sar eax, 1
cmp byte [ebp - 0x400], 3
cmovne esi, eax
movzx eax, word [ebx + 0x42]
and edx, 0x1e0
neg edx
sbb edx, edx
imul eax, esi
neg edx
inc edx
imul ecx, edx
imul eax, edx
imul ecx, edi
imul eax, dword [ebp - 0x3e4]
imul ecx, dword [ebp - 0x3e4]
shr eax, 8
add dword [ebx + 0x90], eax
add dword [ebx + 0x94], eax
movzx eax, word [ebx + 0x62]
shr ecx, 8
add dword [ebx + 0x88], ecx
add dword [ebx + 0x8c], ecx
movzx ecx, word [ebx + 0x60]
imul eax, esi
imul ecx, edx
imul eax, edx
xor edx, edx
imul ecx, edi
imul eax, dword [ebp - 0x3e4]
imul ecx, dword [ebp - 0x3e4]
shr eax, 8
add dword [ebx + 0x70], eax
add dword [ebx + 0x74], eax
mov eax, dword [ebx + 0x16a4]
shr ecx, 8
add dword [ebx + 0x68], ecx
add dword [ebx + 0x6c], ecx
mov ecx, dword [ebp - 0x3d8]
shl ecx, 0xa
sub eax, ecx
mov dword [ebx + 0x1c4], eax
mov eax, dword [ebx + 0x169c]
sub eax, ecx
mov dword [ebx + 0x1cc], eax
mov eax, dword [ebx + 0x1698]
sub eax, ecx
mov dword [ebx + 0x1c8], eax
mov eax, dword [ebx + 0x16a0]
sub eax, ecx
mov dword [ebx + 0x1d0], eax
mov eax, dword [ebx + 0x16a8]
sub eax, ecx
movzx ecx, byte [ebx + 0x2ee]
mov dword [ebx + 0x2e8], eax
mov eax, dword [ebx + 0x1688]
div ecx
and eax, 0xffffff00
mov dword [ebx + 0x1d8], eax
mov esi, dword [ebx + 0x1660]
and esi, 0xf
cmp byte [ebx + 0x2ed], 0
jne 0x103faa0d
push dword [ebx + 0x16ac]
mov ecx, dword [ebx + 4]
lea eax, [ebx + 0x1614]
lea eax, [eax + esi*4]
push eax
call fcn.103e5830
test eax, eax
jne 0x103fba99
mov ecx, dword [ebx]
add esi, 0x585
push 0
push 0
push 0
push 0
lea eax, [ebx + esi*4]
push 0
push dword [eax]
mov dword [ebp - 0x400], eax
call fcn.1033bbe0
mov esi, eax
mov dword [ebp - 0x3d8], esi
test esi, esi
jne 0x103faa51
pop edi
lea eax, [esi + 0x10]
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.1045066c
mov esp, ebp
pop ebp
ret 0x18
movzx eax, byte [ebx + 0x2ed]
lea edx, [ebx + 0x38]
shl eax, 0xa
add eax, esi
je 0x103faa89
test edx, edx
je 0x103faa79
mov ecx, 0x100
mov esi, edx
mov edi, eax
rep movsd dword es:[edi], dword [esi]
mov esi, dword [ebp - 0x3d8]
jmp 0x103faa99
push 0x400
push 0
push eax
call fcn.10425c00
add esp, 0xc
call fcn.1043a2d6
mov dword [eax], 0x16
call fcn.1043a1d8
cmp byte [ebx + 0x2ed], 0
jne 0x103fab6e
mov eax, dword [ebx + 0x16a4]
add eax, esi
je 0x103faad6
lea ecx, [ebx + 0x4b8]
push 0x1000
test ecx, ecx
je 0x103faacb
push ecx
push eax
call fcn.10425d60
add esp, 0xc
jmp 0x103faae6
push 0
push eax
call fcn.10425c00
add esp, 0xc
call fcn.1043a2d6
mov dword [eax], 0x16
call fcn.1043a1d8
mov eax, dword [ebx + 0x1698]
lea edx, [ebx + 0x14c8]
add eax, esi
je 0x103fab1d
test edx, edx
je 0x103fab0d
mov ecx, 0x30
mov esi, edx
mov edi, eax
rep movsd dword es:[edi], dword [esi]
mov esi, dword [ebp - 0x3d8]
jmp 0x103fab2d
push 0xc0
push 0
push eax
call fcn.10425c00
add esp, 0xc
call fcn.1043a2d6
mov dword [eax], 0x16
call fcn.1043a1d8
mov eax, dword [ebx + 0x169c]
lea edx, [ebx + 0x438]
add eax, esi
je 0x103fab5e
test edx, edx
je 0x103fab4e
mov ecx, 0x20
mov esi, edx
mov edi, eax
rep movsd dword es:[edi], dword [esi]
jmp 0x103fab6e
push 0x80
push 0
push eax
call fcn.10425c00
add esp, 0xc
call fcn.1043a2d6
mov dword [eax], 0x16
call fcn.1043a1d8
mov ecx, dword [ebp - 0x400]
mov ecx, dword [ecx]
call fcn.102ac650
cmp byte [ebx + 0x165c], 0
je 0x103fae49
movzx ecx, byte [ebx + 0x2ee]
movzx eax, byte [ebx + 0x2ed]
dec ecx
cmp eax, ecx
jne 0x103fae49
mov eax, dword [ebx + 0x2ca0]
mov dword [ebp - 0x3e8], eax
test eax, eax
je 0x103fac89
mov eax, dword [ebx + 0x9c]
mov edi, dword [ebx + 0x2cc0]
and eax, 3
mov esi, dword [ebx + 0x2ca8]
mov ecx, edi
mov dword [ebp - 0x3dc], eax
cmp eax, 1
jne 0x103fabdc
lea eax, [esi + 1]
shr eax, 1
jmp 0x103fabde
mov eax, esi
mov edx, dword [ebx + 0x2ca4]
mov dword [ebp - 0x3d8], edx
inc edx
and edx, 0xfffffffe
imul edx, eax
mov eax, esi
imul eax, dword [ebp - 0x3d8]
add edx, eax
mov eax, dword [ebp - 0x3d4]
imul edx, dword [ebx + 0x159c]
mov eax, dword [eax]
test eax, eax
jne 0x103fac1a
mov ecx, dword [ebx + 0x34]
inc ecx
imul ecx, edx
add ecx, edi
jmp 0x103fac47
cmp eax, 1
jne 0x103fac51
mov eax, dword [ebx + 0x2cc4]
mov ecx, edx
inc eax
imul ecx, eax
mov dword [ebx + 0x2cc4], eax
add ecx, edi
cmp eax, dword [ebx + 0x34]
jne 0x103fac51
mov eax, dword [ebx + 0x34]
inc eax
imul eax, edx
add eax, edi
mov dword [ebx + 0x2cc0], eax
mov dword [ebx + 0x2cc4], 0
or eax, 0xffffffff
cmp dword [ebx + 0x34], 0
cmova eax, ecx
mov ecx, dword [ebx + 4]
push eax
push dword [ebp - 0x404]
mov eax, dword [ebp - 0x3ec]
push dword [ebp - 0x3dc]
push esi
push dword [ebp - 0x3d8]
push dword [ebp - 0x3e8]
push eax
call fcn.103e6560
jmp 0x103fae49
mov edx, dword [ebp - 0x3d4]
cmp byte [edx + 0x38c], 0
jne 0x103fae4f
mov eax, dword [ebx + 0xc]
cmp eax, dword [ebx + 0x10]
jne 0x103fadb3
cmp byte [ebx + 0x16b0], 0
jne 0x103fadb3
mov eax, dword [ebx + 0x1668]
mov byte [eax + 0xb0], 1
mov eax, dword [edx + 0xac]
test eax, eax
js 0x103fadb3
mov edi, dword [edx + eax*4 + 0x33c]
mov esi, dword [ebx + eax*4 + 0x15c8]
test edi, edi
je 0x103fadb3
test esi, esi
je 0x103fadb3
mov eax, dword [ebx + 0x14]
mov ecx, dword [ebx]
lea eax, [eax*2 + 0xf]
and eax, 0xfffffff0
mov dword [ebp - 0x3e8], eax
mov eax, dword [ebx + 0x18]
lea eax, [eax*2 + 0xf]
and eax, 0xfffffff0
mov dword [ebp - 0x3dc], eax
movzx eax, word [ebx + 0x7c]
inc eax
mov dword [ebp - 0x3d8], eax
movzx eax, word [ebx + 0x7e]
inc eax
mov dword [ebp - 0x404], eax
call fcn.102eb970
mov ecx, dword [ebx]
test al, al
mov eax, dword [ebp - 0x3ec]
je 0x103fad76
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 1
push eax
call fcn.1033bb90
mov ecx, dword [ebx + 0x1668]
push eax
mov eax, dword [ebx + 4]
push 1
push dword [eax + 0x428]
push dword [ebx + 0x18]
push dword [ebx + 0x14]
push esi
push edi
call fcn.10300e00
jmp 0x103fadb3
mov esi, dword [esi]
mov edi, dword [edi]
push eax
call fcn.1033bb90
push eax
mov eax, dword [ebx + 4]
mov ecx, dword [ebx + 0x1668]
push 1
push 1
push dword [eax + 0x428]
push dword [ebp - 0x404]
push dword [ebp - 0x3d8]
push dword [ebp - 0x3dc]
push dword [ebp - 0x3e8]
push esi
push edi
call fcn.103015e0
mov eax, dword [ebx]
mov eax, dword [eax + 8]
mov eax, dword [eax + 0x1c]
mov esi, dword [eax + 0x48]
mov ecx, dword [eax + 0x4c]
mov edx, dword [eax + 0x50]
mov eax, dword [eax + 0x44]
test al, 8
jne 0x103fadfc
test eax, 0x400
jne 0x103fadfc
test ecx, ecx
js 0x103fadfc
test edx, 0x20000000
jne 0x103fadfc
test eax, 0x8000000
jne 0x103fadfc
test ecx, 0x100
jne 0x103fadfc
mov byte [ebp - 0x3d8], 0
test esi, 0x800000
je 0x103fae03
mov byte [ebp - 0x3d8], 1
mov eax, dword [ebx + 4]
push 0
push 0
push 0
push 0
push 0
push 0
push 0
mov ecx, dword [ebx + 0x1668]
push 0
push dword [ebp - 0x3d8]
push 0
push 0
push dword [eax + 0x428]
mov eax, dword [ebp - 0x3d4]
push dword [ebx + 0x18]
push dword [ebx + 0x14]
push dword [ebp - 0x3ec]
push dword [eax + 0xb0]
call fcn.10300e00
mov edx, dword [ebp - 0x3d4]
cmp dword [ebx + 0xc], 0
je 0x103faf1a
mov edi, dword [ebx + 0x2cbc]
test edi, edi
jne 0x103fae75
call fcn.1043a2d6
mov dword [eax], 0x16
call fcn.1043a1d8
jmp 0x103fae7e
mov ecx, 0xe6
mov esi, edx
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [ebx + 0x2cbc]
mov eax, dword [ebx + 0x1658]
mov dword [ecx + 0xb0], eax
cmp byte [ebx + 0x2ee], 1
jbe 0x103faeda
xor al, al
mov byte [ebp - 0x3cd], al
nop dword [eax]
nop word [eax + eax]
mov ecx, dword [ebx + 0x2cbc]
movzx edx, al
mov eax, dword [ebx + edx*4 + 0x2cac]
mov dword [ecx + edx*4 + 0x1c], eax
mov al, byte [ebp - 0x3cd]
inc al
mov byte [ebp - 0x3cd], al
cmp al, byte [ebx + 0x2ee]
jb 0x103faeb0
mov eax, dword [ebp + 0x1c]
mov edi, dword [ebp - 0x3f0]
inc eax
mov ecx, dword [ebx + 8]
push eax
push edi
push dword [ebp - 0x40c]
push dword [ebp - 0x408]
push dword [ebp + 0xc]
push dword [ebx + 0x2cbc]
call fcn.103f9d40
test eax, eax
je 0x103faf20
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.1045066c
mov esp, ebp
pop ebp
ret 0x18
mov edi, dword [ebp - 0x3f0]
mov dl, byte [ebx + 0x2ee]
movzx eax, byte [ebx + 0x2ed]
movzx ecx, dl
mov dword [ebp - 0x3e4], ecx
dec ecx
cmp eax, ecx
jne 0x103fba97
mov eax, dword [ebx]
mov eax, dword [eax + 8]
mov eax, dword [eax + 0x1c]
test dword [eax + 0x48], 0x800000
je 0x103faf59
mov ecx, dword [ebx + 0x30]
mov dword [ebp - 0x3e4], ecx
mov byte [ebp - 0x3cd], 0
test dl, dl
je 0x103fba01
lea edi, [ebx + 0x1668]
lea eax, [ebx + 0x165d]
mov dword [ebp - 0x3e8], edi
mov esi, edi
mov dword [ebp - 0x3fc], eax
mov dword [ebp - 0x404], eax
mov dword [ebp - 0x3dc], esi
nop
cmp dl, 1
jbe 0x103fafae
mov ecx, dword [esi]
push 0
push 0
push 0
call fcn.102fe560
mov dword [ebp - 0x408], eax
mov dword [ebp - 0x3e8], esi
push 0x3c8
lea eax, [ebp - 0x3cc]
push 0
push eax
call fcn.10425c00
mov edx, dword [ebx + 0xc]
xor eax, eax
add esp, 0xc
mov dword [ebp - 0x3c8], 4
test edx, edx
setne al
lea eax, [eax*2 + 1]
mov dword [ebp - 0x3cc], eax
mov eax, dword [ebx + 0x1e0]
and eax, 3
mov dword [ebp - 0x3c4], eax
cmp edx, dword [ebx + 0x10]
jae 0x103fb005
mov dword [ebp - 0x3c0], 0
jmp 0x103fb012
movzx eax, byte [ebx + 0x1678]
mov dword [ebp - 0x3c0], eax
cmp byte [ebx + 0x16b0], 0
mov esi, dword [ebp - 0x404]
mov dword [ebp - 0x3bc], 0
mov al, byte [esi]
mov cl, al
je 0x103fb03f
mov dword [ebp - 0x3fc], esi
test al, al
je 0x103fb058
mov dword [ebp - 0x3fc], esi
mov edi, dword [ebp - 0x3d4]
mov edi, dword [edi + 0xb4]
test edi, edi
je 0x103fb058
mov dword [ebp - 0x4c], 1
jmp 0x103fb06d
mov cl, al
mov dword [ebp - 0x4c], 0
mov eax, dword [ebp - 0x3d4]
mov edi, dword [eax + 0xb4]
test edx, edx
je 0x103fb07c
mov dword [ebp - 0x48], 1
test cl, cl
jne 0x103fb083
mov dword [ebp - 0x48], 0
mov eax, dword [ebx + 0x1660]
movzx ecx, byte [ebx + 0x2ee]
movzx esi, byte [ebp - 0x3cd]
mov dword [ebp - 0x3b8], eax
mov eax, dword [ebp - 0x3d4]
mov dword [ebp - 0x38], 1
mov dword [ebp - 0x1c], ecx
mov dword [ebp - 0x18], esi
cmp byte [eax + 0x38c], 0
je 0x103fb0c4
mov eax, dword [eax + 0xb0]
mov eax, dword [eax + 8]
jmp 0x103fb0cc
mov eax, dword [ebp - 0x3ec]
mov eax, dword [eax]
mov dword [ebp - 0x3b4], eax
xor edx, edx
mov eax, dword [ebp - 0x400]
mov dword [ebp - 0x378], edi
mov eax, dword [eax]
mov dword [ebp - 0x3b0], eax
mov eax, esi
shl eax, 0xa
mov dword [ebp - 0x324], eax
mov eax, dword [ebx + 0x15c0]
mov dword [ebp - 0x380], eax
mov eax, dword [ebx + 0x1688]
div ecx
and eax, 0xffffff00
imul eax, esi
mov dword [ebp - 0x320], eax
mov eax, dword [ebx + 0x2e4]
imul eax, esi
add eax, eax
mov dword [ebp - 0x31c], eax
mov eax, dword [ebx]
mov eax, dword [eax + 8]
mov eax, dword [eax + 0x1c]
test dword [eax + 0x44], 0x8000000
je 0x103fb152
mov edi, dword [ebp - 0x3dc]
push dword [ebp - 0x408]
mov ecx, dword [edi]
call fcn.102fdd00
mov dword [ebp - 0x3e8], edi
jmp 0x103fb158
mov eax, dword [ebx + 0x1610]
mov ecx, dword [ebp - 0x3e4]
mov dword [ebp - 0x3ac], eax
mov eax, dword [ebx]
mov eax, dword [eax + 8]
mov eax, dword [eax + 0x1c]
test dword [eax + 0x44], 0x8000000
je 0x103fb17e
mov dword [ebp - 0x2c], 0
jmp 0x103fb198
mov eax, dword [ebx + 0x1684]
xor edx, edx
div ecx
add eax, 0xff
and eax, 0xffffff00
imul eax, esi
mov dword [ebp - 0x2c], eax
mov edi, dword [ebp - 0x3d4]
mov eax, dword [edi + 0x18]
mov eax, dword [ebx + eax*4 + 0x15c8]
test eax, eax
je 0x103fb1b6
mov eax, dword [eax]
mov dword [ebp - 0x388], eax
jmp 0x103fb1c0
mov dword [ebp - 0x388], 0
mov eax, dword [edi + 0xb8]
mov dword [ebp - 0x384], eax
mov eax, dword [ebx + 0x15c4]
mov dword [ebp - 0x37c], eax
mov eax, dword [ebx + 0x1690]
imul eax, esi
cmp byte [ebx + 0x1674], 1
mov dword [ebp - 0x308], eax
jne 0x103fb1fe
mov eax, dword [edi + 0xbc]
mov dword [ebp - 0x38c], eax
jmp 0x103fb208
mov dword [ebp - 0x38c], 0
cmp dword [ebx + 0xc], 0
je 0x103fb23e
mov eax, dword [ebx + 8]
xor edx, edx
mov ecx, dword [eax + 0x166c]
mov dword [ebp - 0x394], ecx
mov eax, dword [eax + 0x1680]
div dword [ebp - 0x3e4]
mov ecx, eax
imul ecx, esi
add ecx, 0xff
and ecx, 0xffffff00
jmp 0x103fb2a9
mov eax, dword [ebx + 0x1e0]
and eax, 3
cmp eax, 2
je 0x103fb286
cmp eax, 3
je 0x103fb286
cmp byte [edi + 0x37c], 0
je 0x103fb271
cmp byte [ebx + 0x167c], 0
jne 0x103fb271
mov eax, dword [edi + 0x338]
mov dword [ebp - 0x394], eax
jmp 0x103fb290
mov eax, dword [ebx + 0x1664]
mov eax, dword [ebx + eax*4 + 0x1608]
mov dword [ebp - 0x394], eax
jmp 0x103fb290
mov dword [ebp - 0x394], 0
mov eax, dword [ebx + 0x1680]
xor edx, edx
div ecx
lea ecx, [eax + 0xff]
and ecx, 0xffffff00
imul ecx, esi
mov edx, dword [ebx + 0x1e0]
and edx, 3
mov dword [ebp - 0x28], ecx
cmp edx, 2
je 0x103fb2e6
cmp edx, 3
je 0x103fb2e6
mov eax, 0x583
sub eax, dword [ebx + 0x1664]
mov eax, dword [ebx + eax*4]
mov dword [ebp - 0x24], ecx
mov ecx, dword [ebp - 0x3f4]
mov dword [ebp - 0x390], eax
mov eax, dword [ecx]
shr eax, 1
and eax, 0x1f
inc eax
jmp 0x103fb315
mov dword [ebp - 0x390], 0
mov dword [ebp - 0x24], ecx
cmp edx, 2
je 0x103fb30d
cmp edx, 3
je 0x103fb30d
mov ecx, dword [ebp - 0x3f4]
mov eax, dword [ecx]
shr eax, 1
and eax, 0x1f
inc eax
jmp 0x103fb315
mov ecx, dword [ebp - 0x3f4]
xor eax, eax
mov dword [ebp - 0x304], eax
cmp edx, 1
jne 0x103fb32b
mov eax, dword [ecx]
shr eax, 6
and eax, 0x1f
inc eax
jmp 0x103fb32d
xor eax, eax
mov dword [ebp - 0x300], eax
mov eax, dword [ebp - 0x3fc]
movzx eax, byte [eax]
mov dword [ebp - 0x34], eax
movzx eax, byte [ebx + 0x165e]
mov dword [ebp - 8], eax
mov eax, dword [ebx]
mov eax, dword [eax + 8]
mov eax, dword [eax + 0x1c]
test dword [eax + 0x44], 0x8000000
jne 0x103fb492
test dword [eax + 0x4c], 0x100
jne 0x103fb492
test dword [eax + 0x48], 0x800000
jne 0x103fb492
movsx eax, byte [ebx + 0x10c]
lea edx, [edi + 0x33c]
mov dword [ebp - 0x2fc], eax
lea esi, [ebx + 0x15c8]
movsx eax, byte [ebx + 0x10d]
xor ecx, ecx
mov dword [ebp - 0x2f8], eax
movsx eax, byte [ebx + 0x10e]
mov dword [ebp - 0x2f4], eax
movsx eax, byte [ebx + 0x10f]
mov dword [ebp - 0x2f0], eax
movsx eax, byte [ebx + 0x110]
mov dword [ebp - 0x2ec], eax
movsx eax, byte [ebx + 0x111]
mov dword [ebp - 0x2e8], eax
movsx eax, byte [ebx + 0x112]
mov dword [ebp - 0x2e4], eax
movsx eax, byte [ebx + 0x113]
mov dword [ebp - 0x2e0], eax
movsx eax, byte [ebx + 0x114]
mov dword [ebp - 0x27c], eax
movsx eax, byte [ebx + 0x115]
mov dword [ebp - 0x278], eax
movsx eax, byte [ebx + 0x116]
mov dword [ebp - 0x274], eax
movsx eax, byte [ebx + 0x117]
mov dword [ebp - 0x270], eax
movsx eax, byte [ebx + 0x118]
mov dword [ebp - 0x26c], eax
movsx eax, byte [ebx + 0x119]
mov dword [ebp - 0x268], eax
movsx eax, byte [ebx + 0x11a]
mov dword [ebp - 0x264], eax
movsx eax, byte [ebx + 0x11b]
mov dword [ebp - 0x260], eax
mov al, byte [ebx + 0x165c]
mov byte [ebp - 0x3dd], al
cmp byte [ebp - 0x3dd], 0
mov eax, esi
cmove eax, edx
mov eax, dword [eax]
test eax, eax
je 0x103fb478
mov eax, dword [eax]
jmp 0x103fb47a
xor eax, eax
mov dword [ebp + ecx*4 - 0x13c], eax
add esi, 4
inc ecx
add edx, 4
cmp ecx, 0x10
jl 0x103fb462
jmp 0x103fb65f
xor edx, edx
mov dword [ebp - 0x3f8], edx
nop word [eax + eax]
mov eax, edx
lea ecx, [ebp - 0x2fc]
shl eax, 7
mov esi, 0xf
add ecx, eax
mov eax, edx
shl eax, 4
sub eax, edx
lea edx, [eax + 0xa]
lea edx, [edi + edx*4]
nop
mov eax, dword [edx]
lea edx, [edx + 4]
add eax, eax
lea ecx, [ecx + 4]
mov dword [ecx - 4], eax
sub esi, 1
jne 0x103fb4c0
mov edx, dword [ebp - 0x3f8]
lea edi, [ebp - 0x1fc]
mov ecx, edx
shl ecx, 5
add edi, ecx
test edx, edx
jne 0x103fb54e
movsx eax, byte [ebx + 0x304]
mov dword [edi], eax
movsx eax, byte [ebx + 0x305]
mov dword [ebp + ecx - 0x1f8], eax
movsx eax, byte [ebx + 0x306]
mov dword [ebp + ecx - 0x1f4], eax
movsx eax, byte [ebx + 0x307]
mov dword [ebp + ecx - 0x1f0], eax
movsx eax, byte [ebx + 0x308]
mov dword [ebp + ecx - 0x1ec], eax
movsx eax, byte [ebx + 0x309]
mov dword [ebp + ecx - 0x1e8], eax
movsx eax, byte [ebx + 0x30a]
mov dword [ebp + ecx - 0x1e4], eax
mov al, byte [ebx + 0x30b]
jmp 0x103fb5b1
movsx eax, byte [ebx + 0x30c]
mov dword [edi], eax
movsx eax, byte [ebx + 0x30d]
mov dword [ebp + ecx - 0x1f8], eax
movsx eax, byte [ebx + 0x30e]
mov dword [ebp + ecx - 0x1f4], eax
movsx eax, byte [ebx + 0x30f]
mov dword [ebp + ecx - 0x1f0], eax
movsx eax, byte [ebx + 0x310]
mov dword [ebp + ecx - 0x1ec], eax
movsx eax, byte [ebx + 0x311]
mov dword [ebp + ecx - 0x1e8], eax
movsx eax, byte [ebx + 0x312]
mov dword [ebp + ecx - 0x1e4], eax
mov al, byte [ebx + 0x313]
movsx eax, al
xor esi, esi
mov dword [ebp + ecx - 0x1e0], eax
lea eax, [ebp - 0x304]
lea eax, [eax + edx*4]
mov dword [ebp - 0x3d8], eax
cmp dword [eax], esi
jbe 0x103fb649
mov al, byte [ebx + 0x165c]
mov ecx, dword [ebp - 0x3d4]
mov byte [ebp - 0x3dd], al
test edx, edx
jne 0x103fb5ef
mov al, byte [esi + ebx + 0x10c]
jmp 0x103fb5f6
mov al, byte [esi + ebx + 0x114]
movsx eax, al
xor edx, edx
shr eax, 1
div dword [ecx + 0xa0]
cmp byte [ebp - 0x3dd], 0
je 0x103fb615
mov eax, dword [ebx + edx*4 + 0x15c8]
jmp 0x103fb61c
mov eax, dword [ecx + edx*4 + 0x33c]
test eax, eax
je 0x103fb624
mov ecx, dword [eax]
jmp 0x103fb626
xor ecx, ecx
mov eax, dword [edi]
inc esi
mov edx, dword [ebp - 0x3f8]
add edi, 4
mov dword [ebp + eax*4 - 0x13c], ecx
mov eax, dword [ebp - 0x3d8]
mov ecx, dword [ebp - 0x3d4]
cmp esi, dword [eax]
jb 0x103fb5e2
mov edi, dword [ebp - 0x3d4]
inc edx
mov dword [ebp - 0x3f8], edx
cmp edx, 2
jl 0x103fb4a0
cmp byte [edi + 0x38c], 0
je 0x103fb6ae
mov eax, dword [edi + 0xb0]
mov ecx, dword [ebx]
push 0
push dword [eax + 8]
call fcn.1033bbc0
mov ecx, dword [ebp - 0xa8]
push 0
mov dword [ebp + ecx*4 - 0xa4], eax
mov eax, dword [edi + 0xb0]
inc dword [ebp - 0xa8]
mov ecx, dword [ebx]
push dword [eax + 8]
call fcn.1033bbc0
mov ecx, dword [ebp - 0x7c]
mov dword [ebp + ecx*4 - 0x78], eax
inc dword [ebp - 0x7c]
jmp 0x103fb747
mov ecx, dword [ebp - 0x18]
mov esi, dword [ebp - 0x3ec]
test ecx, ecx
jne 0x103fb6d9
mov ecx, dword [ebx]
push esi
call fcn.1033bb90
mov ecx, dword [ebp - 0xa8]
mov dword [ebp + ecx*4 - 0xa4], eax
inc dword [ebp - 0xa8]
mov ecx, dword [ebp - 0x18]
cmp byte [ebx + 0x165c], 0
je 0x103fb747
mov eax, dword [ebp - 0x1c]
cmp eax, 1
jbe 0x103fb6ef
dec eax
cmp ecx, eax
jne 0x103fb747
cmp dword [ebx + 0xc], 0
je 0x103fb741
mov eax, dword [ebx + 0x2cbc]
mov eax, dword [eax + 0x388]
test eax, eax
je 0x103fb741
mov ecx, dword [ebx]
push eax
call fcn.1033bb90
cmp byte [eax + 0x24], 0
je 0x103fb724
mov eax, dword [ebx + 0x2cbc]
mov eax, dword [eax + 0x388]
mov eax, dword [eax]
mov dword [ebp - 0x50], eax
mov eax, dword [ebx + 0x2cbc]
mov ecx, dword [ebx]
push dword [eax + 0x388]
call fcn.1033bb90
mov ecx, dword [ebp - 0x7c]
mov dword [ebp + ecx*4 - 0x78], eax
inc dword [ebp - 0x7c]
mov dword [edi + 0x388], esi
cmp byte [ebx + 0x167d], 0
je 0x103fb7e7
cmp byte [edi + 0x38d], 0
je 0x103fb798
mov ecx, dword [ebx]
push 0
push dword [edi + 0xb4]
call fcn.1033bbc0
mov ecx, dword [ebp - 0xa8]
push 0
push dword [edi + 0xb4]
mov dword [ebp + ecx*4 - 0xa4], eax
mov ecx, dword [ebx]
inc dword [ebp - 0xa8]
call fcn.1033bbc0
mov ecx, dword [ebp - 0x7c]
mov dword [ebp + ecx*4 - 0x78], eax
inc dword [ebp - 0x7c]
cmp byte [ebx + 0x167d], 0
je 0x103fb7e7
mov eax, dword [ebp - 0x3fc]
cmp byte [eax], 0
je 0x103fb7e7
mov ecx, dword [ebx]
push 0
push dword [ebx + 0x15c4]
call fcn.1033bbc0
mov ecx, dword [ebp - 0xa8]
push 0
push dword [ebx + 0x15c4]
mov dword [ebp + ecx*4 - 0xa4], eax
mov ecx, dword [ebx]
inc dword [ebp - 0xa8]
call fcn.1033bbc0
mov ecx, dword [ebp - 0x7c]
mov dword [ebp + ecx*4 - 0x78], eax
inc dword [ebp - 0x7c]
cmp byte [ebp - 0x40c], 0
mov eax, dword [edi + 0x390]
mov dword [ebp - 0x338], eax
mov eax, dword [edi + 0x394]
mov dword [ebp - 0x330], eax
je 0x103fb9b9
mov esi, dword [ebp + 0x1c]
test esi, esi
je 0x103fb885
mov edi, dword [ebp - 0x3f0]
mov eax, 1
mov ecx, dword [ebp - 0x390]
mov edx, dword [ebp - 0x388]
mov dword [edi + esi*4 + 0x15bc], edx
mov dword [edi + esi*4 + 0x15c4], ecx
sub eax, dword [ebx + 0x1664]
mov dword [edi + esi*4 + 0x15d4], eax
test ecx, ecx
je 0x103fb856
mov eax, dword [edi + esi*4 + 0x15b4]
mov dword [ebp - 0x390], eax
test edx, edx
je 0x103fb9bf
mov eax, dword [edi + esi*4 + 0x15ac]
test eax, eax
je 0x103fb876
mov eax, dword [eax]
mov dword [ebp - 0x388], eax
jmp 0x103fb9bf
mov dword [ebp - 0x388], 0
jmp 0x103fb9bf
mov eax, dword [ebp - 0x3f0]
mov ecx, dword [ebp - 0x384]
mov esi, dword [ebp - 0x388]
mov edx, dword [ebp - 0x390]
mov dword [eax + 0x90], esi
mov dword [eax + 0x80], ecx
mov dword [eax + 0x94], edx
mov eax, dword [edi + 0x18]
mov edi, dword [ebp - 0x3f0]
mov dword [edi + 0xa4], eax
mov eax, 1
sub eax, dword [ebx + 0x1664]
mov dword [edi + 0xa8], eax
test ecx, ecx
je 0x103fb98d
mov edi, dword [ebp - 0x3dc]
mov eax, dword [ecx + 0x74]
push 0
push 0
mov edi, dword [edi]
mov esi, dword [eax + 0x24]
push ecx
mov ecx, dword [ebx]
mov eax, dword [edi]
mov dword [ebp - 0x3d8], eax
call fcn.1033bbc0
mov ecx, dword [ebx]
push eax
mov eax, dword [ebp - 0x3f0]
push 0
push dword [eax + 4]
call fcn.1033bbc0
push eax
mov eax, dword [ebp - 0x3f0]
mov ecx, edi
push 0
push esi
push 1
push esi
push 0
push esi
push 1
push esi
push dword [eax + 4]
mov eax, dword [ebp - 0x3d8]
push dword [ebp - 0x384]
call dword [eax + 0x44]
mov edi, dword [ebp - 0x3f0]
mov ecx, dword [ebx]
push 0
mov eax, dword [edi + 4]
push eax
mov dword [ebp - 0x384], eax
call fcn.1033bbc0
mov ecx, dword [ebp - 0xa8]
push 0
push dword [edi + 4]
mov dword [ebp + ecx*4 - 0xa4], eax
mov ecx, dword [ebx]
inc dword [ebp - 0xa8]
call fcn.1033bbc0
mov ecx, dword [ebp - 0x7c]
mov dword [ebp + ecx*4 - 0x78], eax
mov eax, dword [ebp - 0x3dc]
inc dword [ebp - 0x7c]
mov esi, dword [ebp - 0x388]
mov edx, dword [ebp - 0x390]
mov dword [ebp - 0x3e8], eax
test edx, edx
je 0x103fb99d
mov eax, dword [edi + 0x8c]
mov dword [ebp - 0x390], eax
test esi, esi
je 0x103fb9bf
mov eax, dword [edi + 0x88]
test eax, eax
je 0x103fb876
mov eax, dword [eax]
mov dword [ebp - 0x388], eax
jmp 0x103fb9bf
mov edi, dword [ebp - 0x3f0]
push 0
push 1
lea eax, [ebp - 0x3cc]
push eax
mov eax, dword [ebp - 0x3e8]
mov ecx, dword [eax]
call fcn.10300220
test eax, eax
jne 0x103fba99
mov cl, byte [ebp - 0x3cd]
mov dl, byte [ebx + 0x2ee]
inc cl
mov esi, dword [ebp - 0x3dc]
mov byte [ebp - 0x3cd], cl
cmp cl, dl
jb 0x103faf90
mov eax, dword [ebp - 0x390]
mov dword [ebx + 0x166c], eax
mov ecx, dword [ebx + 0x1660]
mov eax, dword [ebx + 0x1e0]
inc ecx
and eax, 3
mov dword [ebx + 0x1660], ecx
cmp eax, 1
je 0x103fba2c
test eax, eax
jne 0x103fba33
xor dword [ebx + 0x1664], 1
cmp byte [ebp - 0x40c], 0
je 0x103fba97
mov edx, dword [ebp + 0x1c]
test edx, edx
je 0x103fba6d
mov dword [edi + edx*4 + 0x15cc], ecx
mov eax, dword [ebx + 0x1664]
mov dword [edi + edx*4 + 0x15dc], eax
mov eax, dword [ebx + edx*4 + 0x2c84]
mov dword [ebx + 0x1660], eax
mov eax, dword [ebx + edx*4 + 0x2c94]
jmp 0x103fba91
mov dword [edi + 0x15a4], ecx
mov eax, dword [ebx + 0x1664]
mov dword [edi + 0x15a8], eax
mov eax, dword [ebx + 0x2c5c]
mov dword [ebx + 0x1660], eax
mov eax, dword [ebx + 0x2c60]
mov dword [ebx + 0x1664], eax
xor eax, eax
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.1045066c
mov esp, ebp
pop ebp
ret 0x18