Function at 0x55553d
Capabilities:
Encrypt data using rc4 ksa
Enumerate pe sections

Disassembly:
push 0xffffffffffffffff
push 0x68c898
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x30
push ebx
push ebp
push esi
push edi
mov esi, ecx
call fcn.0051a504
mov ecx, esi
call fcn.00556780
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0xac]
mov edx, dword [esi]
mov byte [esp + 0x18], al
mov bl, al
mov eax, dword [esp + 0x18]
push eax
mov ecx, esi
mov byte [esp + 0x18], bl
call dword [edx + 0xc0]
mov ecx, dword [eax + 0x686]
mov ebp, 0x4000
test ebp, ecx
jne 0x5555cd
mov edi, dword [esp + 0x14]
mov edx, dword [esi]
push edi
mov ecx, esi
call dword [edx + 0xb0]
mov bl, al
mov al, byte [esp + 0x18]
cmp bl, al
mov byte [esp + 0x14], bl
je 0x5555d3
mov edi, dword [esp + 0x14]
mov eax, dword [esi]
push edi
mov ecx, esi
call dword [eax + 0xc0]
test dword [eax + 0x686], ebp
je 0x55559d
mov byte [esi + 0x72a0], bl
mov edx, dword [esi]
xor ebp, ebp
push ebp
push ebp
mov ecx, esi
mov dword [esi + 0x72ae], 0x1f
call dword [edx + 0x1d8]
mov ecx, eax
mov eax, dword [esi + 0x9ea]
imul eax, dword [esi + 0x9e6]
test eax, eax
mov dword [esp + 0x10], ecx
mov dword [esp + 0x2c], ebp
mov edx, 1
jbe 0x555822
jmp 0x55561c
mov ecx, dword [esp + 0x10]
xor ebp, ebp
mov edx, 1
xor eax, eax
mov dword [esp + 0x1c], edx
mov al, byte [ecx + 0xa]
mov cx, word [ecx + 8]
and ecx, 0xfff
mov dword [esp + 0x14], edx
cmp cx, word [0x6d0b28]
mov eax, dword [eax*4 + 0x6b8a88]
je 0x55564b
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x14], ebp
mov eax, dword [eax + 0x17b]
mov dword [esp + 0x28], ebp
test ah, 1
jne 0x55565e
test al, 0x80
je 0x555662
mov dword [esp + 0x28], edx
test al, 1
mov dword [esp + 0x20], edx
mov dword [esp + 0x18], edx
jne 0x555676
mov dword [esp + 0x20], ebp
mov dword [esp + 0x18], ebp
mov ebx, 0x7c8354
mov ecx, dword [esp + 0x10]
mov edi, dword [0x6b8a7c]
mov ebp, dword [0x6b8a70]
sub ecx, edi
sar ecx, 4
mov eax, ecx
xor edx, edx
div ebp
mov eax, dword [ebx - 4]
mov edi, edx
xor edx, edx
add edi, eax
mov eax, ecx
div ebp
mov edx, dword [ebx]
mov ecx, esi
mov ebp, eax
add ebp, edx
mov edx, dword [esi]
push ebp
push edi
call dword [edx + 0x1fc]
test eax, eax
je 0x555755
mov eax, dword [esi + 0x9e6]
xor ecx, ecx
imul eax, ebp
add eax, edi
mov edi, dword [esi + 0x9ee]
shl eax, 4
add eax, edi
xor ebp, ebp
mov cl, byte [eax + 0xa]
mov edi, dword [ecx*4 + 0x6b8a88]
mov ecx, dword [edi + 0x17b]
test ch, 1
jne 0x5556f1
test cl, 0x80
je 0x5556f6
mov ebp, 1
mov ecx, dword [esp + 0x1c]
test ecx, ecx
jne 0x55570a
mov ecx, dword [esp + 0x20]
test ecx, ecx
jne 0x55570a
test ebp, ebp
je 0x555717
test byte [eax + 0xb], 0x20
je 0x555717
mov ecx, 1
jmp 0x555719
xor ecx, ecx
mov dl, byte [eax + 0xb]
and cl, 1
shl cl, 5
and dl, 0xdf
or cl, dl
mov byte [eax + 0xb], cl
mov ax, word [eax + 8]
and eax, 0xfff
cmp ax, word [0x6d0b28]
je 0x555744
mov dword [esp + 0x14], 0
test byte [edi + 0x17b], 1
jne 0x555755
test ebp, ebp
jne 0x555755
mov dword [esp + 0x18], ebp
add ebx, 8
cmp ebx, 0x7c8374
jb 0x55567b
mov eax, dword [esp + 0x14]
test eax, eax
jne 0x5557b9
mov eax, dword [esp + 0x28]
test eax, eax
jne 0x5557b9
mov eax, dword [esp + 0x18]
test eax, eax
jne 0x5557b9
mov edi, dword [esp + 0x10]
mov eax, dword [0x6b8a7c]
mov ebp, dword [0x6b8a70]
sub edi, eax
sar edi, 4
mov eax, edi
xor edx, edx
div ebp
xor edx, edx
mov ecx, eax
mov eax, edi
div ebp
imul ecx, dword [esi + 0x9e6]
add ecx, edx
mov edx, dword [esi + 0x9ee]
shl ecx, 4
add ecx, edx
mov al, byte [ecx + 0xb]
and al, 0xdf
jmp 0x5557f4
mov edi, dword [esp + 0x10]
mov eax, dword [0x6b8a7c]
mov ebp, dword [0x6b8a70]
sub edi, eax
sar edi, 4
mov eax, edi
xor edx, edx
div ebp
xor edx, edx
mov ecx, eax
mov eax, edi
div ebp
imul ecx, dword [esi + 0x9e6]
add ecx, edx
mov edx, dword [esi + 0x9ee]
shl ecx, 4
add ecx, edx
mov al, byte [ecx + 0xb]
or al, 0x20
mov byte [ecx + 0xb], al
mov ecx, dword [esi + 0x9ea]
imul ecx, dword [esi + 0x9e6]
mov ebx, dword [esp + 0x10]
mov eax, dword [esp + 0x2c]
add ebx, 0x10
inc eax
cmp eax, ecx
mov dword [esp + 0x10], ebx
mov dword [esp + 0x2c], eax
jb 0x555611
xor ebp, ebp
test byte [esi + 0x7239], 0x40
jne 0x5559e8
xor edx, edx
mov dx, word [esi + 0x7a]
mov ebx, dword [edx*4 + 0x6ccb20]
cmp ebx, ebp
mov dword [esp + 0x10], ebx
je 0x5559e8
xor eax, eax
mov ax, word [ebx + 0x36]
mov edi, dword [eax*4 + 0x6ccb20]
cmp edi, ebp
je 0x55590d
xor eax, eax
mov al, byte [edi + 0x18]
sub eax, 4
je 0x5558ba
dec eax
jne 0x5558c7
test byte [edi + 0x9a], 1
jne 0x5558c7
xor ecx, ecx
mov cx, word [edi + 0xe]
mov eax, dword [ecx*4 + 0x6ccb20]
cmp eax, ebp
je 0x5558c7
cmp byte [eax + 0x12c], 0xd
je 0x5558a3
xor edx, edx
mov dx, word [eax + 0x12a]
mov eax, dword [edx*4 + 0x6ccb20]
cmp eax, ebp
jne 0x555884
jmp 0x5558c7
mov ecx, dword [eax + 0x1e]
mov edx, dword [eax + 0x1a]
sar ecx, 0xc
sar edx, 0xc
push ecx
push edx
mov ecx, ebx
call fcn.0051178a
jmp 0x5558c7
mov eax, dword [0x6d0b6c]
mov ecx, edi
push eax
call fcn.005290dd
cmp byte [ebx + 0x10fc], 2
jne 0x5558f8
mov eax, dword [edi + 0x35]
xor ecx, ecx
mov cx, word [edi + 0xa7]
xor edx, edx
div ecx
mov dx, word [0x6d0b28]
mov ecx, edi
mov dword [esp + 0x2c], eax
lea eax, [esp + 0x2c]
push edx
push eax
call fcn.00530101
xor ecx, ecx
mov cx, word [edi + 8]
mov edi, dword [ecx*4 + 0x6ccb20]
cmp edi, ebp
jne 0x55585d
xor edx, edx
mov dx, word [ebx + 0xe]
mov edi, dword [edx*4 + 0x6ccb20]
cmp edi, ebp
je 0x5559cf
cmp dword [edi + 0x109], ebp
jne 0x5559ba
mov eax, dword [edi + 0xf7]
mov ecx, dword [eax + 0x8b]
and ecx, 0x20
cmp cl, 0x20
jne 0x5559ba
mov ebx, dword [edi + 0x1e]
mov ebp, dword [edi + 0x1a]
sar ebx, 0xc
sar ebp, 0xc
mov edx, ebx
mov eax, ebp
and edx, 0xffff
and eax, 0xffff
shl edx, 0x10
xor ecx, ecx
or edx, eax
mov cx, word [edi + 0x28]
mov dword [esp + 0x30], edx
mov dword [esp + 0x34], 1
mov dword [esp + 0x38], ecx
mov dword [esp + 0x3c], 0x11
lea edx, [esp + 0x30]
mov ecx, esi
push edx
mov dword [esp + 0x4c], 0
call fcn.00560da7
push 1
push ebx
push ebp
lea ecx, [esi + 0x9da]
call fcn.0049f5bc
push 1
mov ecx, edi
call fcn.004f2d5e
mov ebx, dword [esp + 0x10]
mov dword [esp + 0x48], 0xffffffff
xor ebp, ebp
xor eax, eax
mov ax, word [edi + 0x10]
mov edi, dword [eax*4 + 0x6ccb20]
cmp edi, ebp
jne 0x555922
xor ecx, ecx
mov cx, word [ebx + 0x3a]
mov ebx, dword [ecx*4 + 0x6ccb20]
cmp ebx, ebp
mov dword [esp + 0x10], ebx
jne 0x555848
xor edx, edx
mov dx, word [esi + 0x7a]
mov ebx, dword [edx*4 + 0x6ccb20]
cmp ebx, ebp
mov dword [esp + 0x10], ebx
je 0x555d81
mov eax, dword [0x6d0fac]
mov ebp, dword [ebx + 0x10ea]
sub eax, ebp
mov ecx, ebx
push eax
call fcn.0050d427
mov edx, dword [ebx + 0x10de]
xor ecx, ecx
mov cx, word [0x6d0fce]
add edx, ecx
mov dword [ebx + 0x10de], edx
xor edx, edx
mov dx, word [ebx + 6]
mov edi, dword [edx*4 + 0x6ccb20]
test edi, edi
je 0x555a5d
mov al, byte [edi + 0x36f]
mov ecx, ebx
push eax
call fcn.0050bf56
xor ecx, ecx
mov cx, word [edi + 0x10]
mov edi, dword [ecx*4 + 0x6ccb20]
test edi, edi
jne 0x555a3e
xor edx, edx
mov dx, word [ebx + 0x36]
mov ebp, dword [edx*4 + 0x6ccb20]
test ebp, ebp
je 0x555b25
xor eax, eax
xor ecx, ecx
mov al, byte [ebp + 0x2e]
mov cl, byte [ebp + 0x2d]
mov byte [esp + 0x20], cl
mov byte [esp + 0x21], al
mov al, byte [esp + 0x20]
test al, al
jne 0x555a94
mov al, byte [esp + 0x21]
test al, al
je 0x555af0
mov ecx, dword [esp + 0x21]
mov edx, dword [esp + 0x20]
mov eax, dword [esi]
and ecx, 0xff
and edx, 0xff
push ecx
push edx
mov ecx, esi
call dword [eax + 0x1d8]
mov edx, dword [0x6b8a7c]
mov edi, eax
mov ecx, edi
sub ecx, edx
xor edx, edx
sar ecx, 4
mov eax, ecx
div dword [0x6b8a70]
xor edx, edx
push eax
mov eax, ecx
div dword [0x6b8a70]
lea ecx, [esi + 0x9be]
push edx
push ebp
call fcn.00537af0
mov ax, word [edi + 4]
mov word [esp + 0x20], ax
jmp 0x555a84
mov ecx, dword [ebp + 0x92]
xor eax, eax
cmp ecx, eax
jge 0x555b02
mov dword [ebp + 0x92], eax
cmp dword [ebp + 0x96], eax
jge 0x555b10
mov dword [ebp + 0x96], eax
xor ecx, ecx
mov cx, word [ebp + 8]
mov ebp, dword [ecx*4 + 0x6ccb20]
cmp ebp, eax
jne 0x555a72
mov ax, word [ebx + 4]
cmp ax, word [0x6d0b28]
je 0x555be9
cmp ax, word [0x6d0b2c]
je 0x555be9
mov eax, dword [esp + 0x10]
xor edx, edx
mov dx, word [0x6d0f1e]
mov ecx, dword [eax + 0x10e6]
add ecx, edx
mov dword [eax + 0x10e6], ecx
mov ax, word [eax + 4]
mov edx, dword [esi]
mov ecx, esi
mov word [esp + 0x2c], ax
call dword [edx + 0x1d0]
mov edi, eax
mov eax, dword [esi]
mov ecx, esi
mov dword [esp + 0x28], edi
call dword [eax + 0x1cc]
mov ebp, dword [esi + 0x9ee]
mov ebx, eax
test edi, edi
mov dword [esp + 0x18], 0
jbe 0x555bd4
xor edi, edi
test ebx, ebx
jbe 0x555bc3
mov cx, word [ebp + 8]
and ecx, 0xfff
cmp cx, word [esp + 0x2c]
jne 0x555bbb
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x10]
push edx
push edi
call fcn.00506416
add ebp, 0x10
inc edi
cmp edi, ebx
jb 0x555b9b
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x28]
inc eax
cmp eax, ecx
mov dword [esp + 0x18], eax
jb 0x555b95
mov eax, dword [esp + 0x10]
mov cl, byte [eax + 0x10fa]
test cl, cl
je 0x555be9
mov ecx, eax
call fcn.00507481
mov ebx, dword [esp + 0x10]
xor ecx, ecx
mov cx, word [ebx + 0x36]
mov edi, dword [ecx*4 + 0x6ccb20]
test edi, edi
je 0x555c51
lea ebp, [esi + 0x9be]
mov edx, dword [edi + 0x19]
test byte [edx + 0x43d], 0x80
je 0x555c2f
mov ecx, edi
call fcn.00531916
push edi
mov ecx, ebp
call fcn.0053a1dc
push edi
mov ecx, ebp
call fcn.00539df0
push edi
mov ecx, ebp
call fcn.00538bb8
push 1
push edi
mov ecx, ebp
call fcn.0053bb9c
mov ecx, edi
call fcn.0052ed16
xor eax, eax
mov ax, word [edi + 8]
mov edi, dword [eax*4 + 0x6ccb20]
test edi, edi
jne 0x555c04
test byte [esi + 0x7239], 0x40
jne 0x555d61
xor ecx, ecx
mov dword [esp + 0x2c], 0
mov cx, word [ebx + 0x12]
mov ebp, dword [ecx*4 + 0x6ccb20]
test ebp, ebp
je 0x555d15
cmp word [ebp + 0x132], 0
jne 0x555cfc
mov edx, dword [esi]
lea eax, [ebp + 0x1a]
push eax
mov ecx, esi
call dword [edx + 0x1d4]
mov ebx, eax
push 0xe
mov ecx, ebx
call fcn.004a1eb3
test eax, eax
je 0x555cfc
xor ecx, ecx
mov cx, word [ebx]
mov edi, dword [ecx*4 + 0x6ccb20]
test edi, edi
je 0x555cfc
cmp dword [edi + 0x12], 2
jne 0x555ceb
mov al, byte [edi + 0x12c]
cmp al, 0x1f
jb 0x555ceb
cmp al, 0x22
ja 0x555ceb
push ebp
mov ecx, ebx
call fcn.004a3d60
mov ecx, eax
call fcn.0053120f
test eax, eax
je 0x555ce3
mov dword [edi + 0x14a], 1
mov dword [esp + 0x2c], 1
xor edx, edx
mov dx, word [edi + 0xc]
mov edi, dword [edx*4 + 0x6ccb20]
test edi, edi
jne 0x555cb2
xor eax, eax
mov ax, word [ebp + 0x10]
mov ebp, dword [eax*4 + 0x6ccb20]
test ebp, ebp
jne 0x555c7b
mov ebx, dword [esp + 0x10]
cmp dword [esp + 0x2c], 1
je 0x555c5e
xor ecx, ecx
mov cx, word [ebx + 6]
mov edi, dword [ecx*4 + 0x6ccb20]
test edi, edi
je 0x555d61
push 0
push 0
push 3
mov ecx, edi
call fcn.004e7443
test byte [edi + 0x46f], 0x40
je 0x555d50
push 0x4c
mov ecx, edi
call fcn.004d819c
xor edx, edx
mov dx, word [edi + 0x10]
mov edi, dword [edx*4 + 0x6ccb20]
test edi, edi
jne 0x555d31
mov ecx, ebx
call fcn.00526e50
xor eax, eax
mov ax, word [ebx + 0x3a]
mov ebx, dword [eax*4 + 0x6ccb20]
test ebx, ebx
mov dword [esp + 0x10], ebx
jne 0x555a01
mov edx, dword [esi]
xor ebx, ebx
push 8
mov ecx, esi
mov dword [esi + 0x729b], ebx
mov byte [esi + 0x729f], bl
mov dword [esi + 0x731c], ebx
mov dword [esi + 0x7320], ebx
call dword [edx + 0x70]
movsx eax, word [eax + 0x187]
mov edx, dword [esi]
push 8
mov ecx, esi
mov dword [esp + 0x30], eax
call dword [edx + 0x70]
movsx eax, word [eax + 0x189]
mov edi, dword [esi + 0x9ee]
mov dword [esp + 0x28], eax
mov eax, dword [esi + 0x9ea]
mov dword [esp + 0x10], ebx
cmp eax, ebx
jbe 0x555f9b
mov dword [esp + 0x14], 0x800
mov eax, dword [esi + 0x9e6]
xor ebx, ebx
test eax, eax
jbe 0x555f76
mov dword [esp + 0x18], 0x800
mov edx, dword [esi]
push edi
mov ecx, esi
call dword [edx + 0x210]
test eax, eax
je 0x555e31
mov eax, dword [esp + 0x10]
lea ebp, [esi + 0x9da]
push eax
push ebx
mov ecx, ebp
call fcn.0049e190
shl eax, 4
push eax
call fcn.0069eae0
mov ecx, dword [esp + 0x14]
add esp, 4
push eax
push ecx
jmp 0x555e56
mov edx, dword [esp + 0x10]
lea ebp, [esi + 0x9da]
push edx
push ebx
mov ecx, ebp
call fcn.0049decd
shl eax, 4
push eax
call fcn.0069eae0
add esp, 4
push eax
mov eax, dword [esp + 0x14]
push eax
push ebx
push edi
mov ecx, ebp
call fcn.004a0be0
mov al, byte [edi + 0xa]
mov cl, byte [esi + 0x9bae]
cmp al, cl
je 0x555eb4
cmp al, byte [esi + 0x9baf]
je 0x555eb4
cmp al, 0x20
je 0x555eb4
mov ecx, eax
and ecx, 0xff
mov edx, dword [ecx*4 + 0x6b8a88]
test byte [edx + 0x17b], 2
jne 0x555eb4
mov ecx, dword [esp + 0x2c]
mov edx, dword [esi + 0x731c]
add edx, ecx
mov ecx, dword [esi + 0x7320]
mov dword [esi + 0x731c], edx
mov edx, dword [esp + 0x28]
add ecx, edx
mov dword [esi + 0x7320], ecx
cmp al, 0x1f
je 0x555ec0
cmp al, 0x20
jne 0x555f56
xor ecx, ecx
mov ebp, dword [esi + 0x731c]
mov cl, byte [edi + 0xa]
sub al, 0x1f
mov ecx, dword [ecx*4 + 0x6b8a88]
movsx edx, word [ecx + 0x187]
add ebp, edx
mov edx, dword [esi + 0x7320]
mov dword [esi + 0x731c], ebp
movsx ecx, word [ecx + 0x189]
add edx, ecx
mov ecx, dword [esp + 0x14]
neg al
sbb eax, eax
mov dword [esi + 0x7320], edx
mov edx, dword [esp + 0x18]
and eax, 7
add eax, 0x65
mov dword [esp + 0x30], edx
mov dword [esp + 0x34], ecx
mov cx, word [edi + 8]
mov byte [esp + 0x20], al
lea edx, [esp + 0x1c]
lea eax, [esp + 0x30]
push edx
mov edx, dword [esp + 0x24]
and ecx, 0xfff
push eax
push ecx
push edx
lea ecx, [esi + 8]
mov dword [esp + 0x48], 0
call fcn.005038ad
test eax, eax
je 0x555f56
mov ecx, dword [esp + 0x1c]
mov al, byte [ecx + 0xf3]
and al, 0xfe
mov byte [ecx + 0xf3], al
mov ecx, dword [esp + 0x18]
mov eax, dword [esi + 0x9e6]
add edi, 0x10
inc ebx
add ecx, 0x1000
cmp ebx, eax
mov dword [esp + 0x18], ecx
jb 0x555dfb
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
mov ecx, dword [esi + 0x9ea]
inc eax
add edx, 0x1000
cmp eax, ecx
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], edx
jb 0x555de3
test byte [esi + 0x7239], 0x40
jne 0x555fcd
xor eax, eax
mov ax, word [esi + 0x7a]
mov edi, dword [eax*4 + 0x6ccb20]
test edi, edi
je 0x555fcd
mov ecx, edi
call fcn.00509ece
xor ecx, ecx
mov cx, word [edi + 0x3a]
mov edi, dword [ecx*4 + 0x6ccb20]
test edi, edi
jne 0x555fb5
mov edx, dword [esi + 0x9ea]
mov eax, dword [esi + 0x9e6]
push edx
push eax
push 0
push 0
lea ecx, [esi + 0x9da]
call fcn.0049ff50
test byte [esi + 0x7239], 0x40
jne 0x5560fe
xor ecx, ecx
mov cx, word [esi + 0x12]
mov eax, dword [ecx*4 + 0x6ccb20]
test eax, eax
mov dword [esp + 0x28], eax
je 0x5560fe
test byte [eax + 0x32], 0x10
je 0x5560e5
xor ecx, ecx
xor ebp, ebp
mov cx, word [eax + 0x38]
mov bp, word [eax + 0x3e]
mov dword [esp + 0x2c], ecx
xor ecx, ecx
mov cx, word [eax + 0x3a]
xor edi, edi
mov di, word [eax + 0x3c]
cmp ecx, ebp
mov dword [esp + 0x20], ecx
mov dword [esp + 0x18], ecx
jg 0x556079
mov ebx, dword [esp + 0x2c]
cmp ebx, edi
jg 0x55606c
mov ecx, dword [esp + 0x18]
mov edx, dword [esi + 0x9ee]
imul ecx, dword [esi + 0x9e6]
add ecx, ebx
shl ecx, 4
add ecx, edx
call fcn.004a2fa0
inc ebx
cmp ebx, edi
jle 0x55604a
mov eax, dword [esp + 0x18]
inc eax
cmp eax, ebp
mov dword [esp + 0x18], eax
jle 0x556042
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x2c]
mov edx, ecx
mov ebx, eax
and edx, 0xffff
and ebx, 0xffff
shl edx, 0x10
sub edi, eax
or edx, ebx
inc edi
sub ebp, ecx
and edi, 0xffff
inc ebp
and ebp, 0xffff
mov dword [esp + 0x30], edx
shl ebp, 0x10
or edi, ebp
mov dword [esp + 0x38], 0
mov dword [esp + 0x34], edi
mov dword [esp + 0x3c], 6
lea eax, [esp + 0x30]
mov ecx, esi
push eax
mov dword [esp + 0x4c], 1
call fcn.00560da7
mov eax, dword [esp + 0x28]
mov dword [esp + 0x48], 0xffffffff
xor ecx, ecx
mov cx, word [eax + 8]
mov eax, dword [ecx*4 + 0x6ccb20]
test eax, eax
mov dword [esp + 0x28], eax
jne 0x556010
mov edx, dword [esi]
mov ecx, esi
call dword [edx + 0x264]
and eax, 0xffff
xor ecx, ecx
mov eax, dword [eax*4 + 0x6ccb20]
mov cx, word [eax + 6]
mov edi, dword [ecx*4 + 0x6ccb20]
test edi, edi
je 0x556181
mov ebp, 0xfff
mov al, byte [edi + 0x46f]
mov ebx, 1
test al, 0x40
je 0x556165
mov edx, dword [esi]
lea eax, [edi + 0x1a]
push eax
mov ecx, esi
call dword [edx + 0x1d4]
test word [eax + 2], bp
je 0x556165
mov ecx, eax
call fcn.004a3d60
mov al, byte [eax + 0x18]
cmp al, 0xb
jb 0x556165
cmp al, 0xc
jbe 0x556163
cmp al, 0x10
jne 0x556165
xor ebx, ebx
test ebx, ebx
je 0x556170
mov ecx, edi
call fcn.004d9ffe
xor ecx, ecx
mov cx, word [edi + 0x10]
mov edi, dword [ecx*4 + 0x6ccb20]
test edi, edi
jne 0x55612a
test byte [esi + 0x7239], 0x40
jne 0x556268
xor edx, edx
mov eax, 0x1800
mov dx, word [esi + 0x16]
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], eax
xor ecx, ecx
mov eax, dword [edx*4 + 0x6ccb20]
mov dword [esp + 0x38], 0x2000
test eax, eax
mov dword [esp + 0x10], eax
je 0x5561d0
xor edx, edx
inc ecx
mov dx, word [eax + 8]
mov eax, dword [edx*4 + 0x6ccb20]
test eax, eax
mov dword [esp + 0x10], eax
jne 0x5561ba
mov eax, dword [esi + 0x9ea]
mov edx, dword [esi + 0x9e6]
lea edi, [esp + 0x10]
add eax, 0xfffffffe
push edi
push eax
add edx, 0xfffffffe
lea eax, [esp + 0x38]
push edx
push eax
push ecx
lea ecx, [esi + 8]
call fcn.00503f69
test eax, eax
je 0x55620d
mov ecx, dword [esp + 0x10]
mov byte [ecx + 0x3a], 1
mov edx, dword [esp + 0x10]
mov word [edx + 0x32], 0x5a
test byte [esi + 0x7239], 0x40
jne 0x556268
lea ebp, [esi + 0x4030]
mov dword [esp + 0x2c], 0x18
lea edi, [ebp + 0x20]
mov ebx, 0x10
mov ax, word [edi]
test ax, ax
je 0x55623e
push 0
push eax
mov ecx, esi
call fcn.005632b0
add edi, 0x20
dec ebx
jne 0x55622c
mov ax, word [ebp]
test ax, ax
je 0x556257
push 0
push eax
mov ecx, esi
call fcn.005632b0
mov eax, dword [esp + 0x2c]
add ebp, 0x208
dec eax
mov dword [esp + 0x2c], eax
jne 0x556224
mov edi, dword [0x6d0b70]
xor edx, edx
cmp word [esi + 0x7314], dx
jbe 0x5562ac
mov ecx, dword [esi + 0x7308]
mov eax, edx
and eax, 0xffff
lea eax, [eax + eax*4]
lea eax, [ecx + eax*4]
mov cl, byte [eax + 0xe]
cmp cl, 2
je 0x556299
cmp cl, 0x22
jne 0x5562a2
mov ecx, edi
imul ecx, dword [eax + 4]
mov dword [eax + 4], ecx
inc edx
cmp dx, word [esi + 0x7314]
jb 0x556279
xor edx, edx
cmp word [esi + 0x7318], dx
jbe 0x5562ea
mov ecx, dword [esi + 0x730c]
mov eax, edx
and eax, 0xffff
lea eax, [eax + eax*4]
lea eax, [ecx + eax*4]
mov cl, byte [eax + 0xe]
cmp cl, 0x10
je 0x5562d7
cmp cl, 0x17
jne 0x5562e0
mov ecx, edi
imul ecx, dword [eax + 4]
mov dword [eax + 4], ecx
inc edx
cmp dx, word [esi + 0x7318]
jb 0x5562b7
mov ax, word [esi + 0x7310]
test ax, ax
je 0x556307
push eax
mov ecx, esi
call fcn.00561923
mov dl, byte [eax + 0xf]
mov byte [esi + 0x731a], dl
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0xc4]
mov edx, dword [esi]
mov ecx, esi
mov ebx, eax
call dword [edx + 0xac]
test ebx, ebx
mov byte [esp + 0x2c], al
jbe 0x55634a
mov edi, dword [esp + 0x2c]
mov eax, dword [esi]
push edi
mov ecx, esi
call dword [eax + 0xc0]
mov edx, dword [esi]
push edi
mov ecx, esi
mov dword [esp + 0x2c], eax
call dword [edx + 0xb0]
dec ebx
mov byte [esp + 0x2c], al
jne 0x556325
test byte [esi + 0x7239], 0x40
jne 0x5563ec
xor eax, eax
mov ax, word [esi + 0x7a]
mov ebp, dword [eax*4 + 0x6ccb20]
test ebp, ebp
je 0x5563ec
mov bl, 0x81
xor ecx, ecx
mov dword [esi + 0xa3b3], 0
mov cx, word [esi + 0xc]
mov edi, dword [ecx*4 + 0x6ccb20]
test edi, edi
je 0x5563db
mov ecx, edi
call fcn.004e88a2
mov edx, dword [edi + 0x12d]
test byte [edx + 0xf4], 4
je 0x5563ca
mov edx, dword [esi + 0xa3b3]
inc edx
mov dword [esi + 0xa3b3], edx
mov cl, byte [ebp + 0x184]
inc cl
mov byte [ebp + 0x184], cl
mov al, byte [edi + 0x12c]
cmp al, bl
jne 0x5563ca
inc byte [ebp + 0x185]
xor eax, eax
mov ax, word [edi + 8]
mov edi, dword [eax*4 + 0x6ccb20]
test edi, edi
jne 0x556389
xor ecx, ecx
mov cx, word [ebp + 0x3a]
mov ebp, dword [ecx*4 + 0x6ccb20]
test ebp, ebp
jne 0x55636e
cmp byte [0x7a9a38], 0xff
je 0x55641a
mov edi, 0x7a9a39
mov ecx, dword [0x739a48]
mov eax, dword [edi + 4]
push eax
push 0x79ad34
mov edx, dword [ecx]
call dword [edx + 0x1c]
mov dword [edi], eax
mov al, byte [edi + 0x24]
add edi, 0x25
cmp al, 0xff
jne 0x5563fa
mov ecx, dword [esi + 4]
mov eax, dword [esi + 0x9ea]
mov edx, dword [esi + 0x9ee]
xor edi, edi
mov ebx, dword [ecx + 0x10]
mov dword [esp + 0x10], edx
test eax, eax
mov dword [esp + 0x28], ebx
mov dword [esp + 0x14], edi
jbe 0x5565d0
mov eax, dword [esi + 0x9e6]
xor ebp, ebp
test eax, eax
jbe 0x5565bd
mov ecx, dword [esp + 0x10]
push edi
push ebp
call fcn.004a1258
test eax, eax
je 0x55646f
mov eax, dword [ebx]
push 0
push edi
push ebp
mov ecx, ebx
call dword [eax + 0xb8]
mov ecx, dword [esp + 0x10]
cmp byte [ecx + 0xa], 0x23
jne 0x55659b
mov edx, ecx
mov al, byte [edx + 0xc]
test al, al
jne 0x55659b
mov ebx, dword [esp + 0x14]
mov dword [esp + 0x2c], 1
mov edi, 0x7c8370
mov ecx, dword [edi + 4]
mov eax, dword [esi]
add ecx, ebx
mov edx, ebp
push ecx
mov ecx, dword [edi]
add edx, ecx
mov ecx, esi
push edx
call dword [eax + 0x1d8]
lea ecx, [esp + 0x20]
mov dword [esp + 0x20], 0
push ecx
push 0x71
mov ecx, eax
call fcn.004a1c82
test eax, eax
jne 0x5564d9
add edi, 8
cmp edi, 0x7c83b0
jb 0x55649b
jmp 0x5564e1
mov dword [esp + 0x2c], 0
cmp dword [esp + 0x2c], 1
jne 0x55659b
lea ebx, [esi + 0x15a0]
push 0x969
push 0x7b0ba0
push ebx
push 4
call fcn.0059cec2
add esp, 0x10
test eax, eax
jne 0x55659b
mov ecx, dword [esp + 0x10]
mov edi, dword [0x6b8a7c]
sub ecx, edi
mov edi, dword [0x6b8a70]
sar ecx, 4
mov eax, ecx
xor edx, edx
div edi
mov eax, ecx
mov cx, word [0x6d0b2c]
shl edx, 0xc
add edx, 0x800
mov dword [esp + 0x30], edx
xor edx, edx
div edi
lea edx, [esp + 0x2c]
push edx
shl eax, 0xc
add eax, 0x800
mov dword [esp + 0x38], eax
xor eax, eax
mov dword [esp + 0x3c], eax
mov dword [esp + 0x30], eax
lea eax, [esp + 0x34]
push eax
push ecx
push 0x71
lea ecx, [esi + 8]
call fcn.005038ad
test eax, eax
je 0x55659b
push 0x971
push 0x7b0ba0
push ebx
push 0x800
call fcn.0059cec2
mov edx, dword [esp + 0x3c]
add esp, 0x10
and eax, 0x7ff
mov word [edx + 0xf4], ax
mov edx, dword [esp + 0x10]
mov eax, dword [esi + 0x9e6]
mov edi, dword [esp + 0x14]
mov ebx, dword [esp + 0x28]
add edx, 0x10
inc ebp
cmp ebp, eax
mov dword [esp + 0x10], edx
jb 0x556452
mov eax, dword [esi + 0x9ea]
inc edi
cmp edi, eax
mov dword [esp + 0x14], edi
jb 0x556442
cmp dword [0x73932b], 1
jne 0x556753
mov ecx, 0x73810c
call fcn.005a7d64
cmp al, 4
jne 0x55660a
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x264]
and eax, 0xffff
push 3
push 0xb
mov ecx, dword [eax*4 + 0x6ccb20]
call fcn.00506b9c
mov cl, byte [esi + 0x7239]
mov al, byte [0x73811a]
test cl, 0x40
mov byte [esp + 0x2c], al
jne 0x556753
test al, al
je 0x556753
mov edx, dword [esi]
mov ecx, esi
call dword [edx + 0x264]
and eax, 0xffff
xor ebp, ebp
mov dword [esp + 0x30], ebp
mov dword [esp + 0x34], ebp
mov ebx, dword [eax*4 + 0x6ccb20]
mov dword [esp + 0x38], ebp
mov ecx, ebx
call fcn.00511783
xor edi, edi
mov ecx, ebx
mov di, word [eax + 2]
call fcn.00511783
xor ecx, ecx
lea edx, [esp + 0x14]
mov cx, word [eax]
push edx
mov edx, dword [esi]
lea eax, [esp + 0x34]
shl ecx, 0xc
shl edi, 0xc
add ecx, 0x800
add edi, 0x800
mov dword [esp + 0x34], ecx
sub edi, 0x2000
push eax
mov ecx, esi
mov dword [esp + 0x40], ebp
mov dword [esp + 0x3c], edi
call dword [edx + 0x264]
push eax
mov eax, dword [esp + 0x38]
push eax
lea ecx, [esi + 8]
call fcn.0050370f
test eax, eax
je 0x55673b
mov dword [esp + 0x2c], 0x1000
lea ecx, [esp + 0x2c]
mov dword [esp + 0x48], 2
push ecx
mov ecx, dword [esp + 0x18]
call fcn.004dcf7c
mov ecx, dword [esp + 0x14]
push 1
mov dword [esp + 0x4c], 0xffffffff
call fcn.004d819c
push 0x99d
lea edx, [esi + 0x15a0]
push 0x7b0ba0
push edx
push 4
call fcn.0059cec2
mov ecx, dword [esp + 0x24]
add esp, 0x10
shl eax, 9
and eax, 0x7ff
mov word [ecx + 0xf4], ax
mov dl, byte [0x73811b]
mov byte [esp + 0x28], dl
mov eax, dword [esp + 0x28]
and eax, 0xff
cmp eax, 1
jbe 0x55673b
lea edi, [eax - 1]
mov ecx, dword [esp + 0x14]
call fcn.004d8559
dec edi
jne 0x55672f
push ebp
mov ecx, 0x73810c
call fcn.005a6fa5
push ebp
mov ecx, 0x73810c
call fcn.005a7027
jmp 0x556755
xor ebp, ebp
cmp dword [0x73948f], ebp
je 0x556768
push esi
mov ecx, 0x6ebcb8
call fcn.0057dbe1
mov ecx, dword [esp + 0x40]
pop edi
pop esi
pop ebp
mov eax, 1
mov dword fs:[0], ecx
pop ebx
add esp, 0x3c
ret