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

Disassembly:
push ebp
mov ebp, esp
push ecx
mov ecx, 0x31
push 0
push 0
dec ecx
jne 0x4306d1
xchg dword [ebp - 4], ecx
push ebx
push esi
push edi
mov dword [ebp - 0xc], ecx
mov dword [ebp - 8], edx
mov dword [ebp - 4], eax
xor eax, eax
push ebp
push 0x432990
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.0040c054
mov byte [0x446c70], al
cmp byte [0x446c70], 0
je 0x430720
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x18]
mov edx, 0x4329a8
call fcn.0040b738
jmp 0x430730
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x18]
mov edx, 0x4329c8
call fcn.0040b738
mov eax, 0x446c6c
call fcn.00403b0c
cmp byte [0x446b78], 0
jne 0x4307e0
push 1
mov ecx, 0x4329dc
xor edx, edx
xor eax, eax
call fcn.0042f4f0
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
xor edx, edx
call fcn.0040b38c
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x44]
xor edx, edx
call fcn.0040b38c
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x34]
xor edx, edx
call fcn.0040b38c
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
xor edx, edx
call fcn.0040b38c
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x3c]
xor edx, edx
call fcn.0040b38c
cmp byte [0x446c68], 0
je 0x4307c7
cmp dword [0x446bd0], 0
je 0x4307c7
lea eax, [ebp - 0x68]
mov ecx, dword [0x446bd0]
mov edx, 0x432a24
call fcn.00403df4
mov eax, dword [ebp - 0x68]
xor edx, edx
call fcn.00430548
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x24]
xor edx, edx
mov ecx, dword [eax]
call dword [ecx + 8]
mov byte [0x446c70], 1
jmp 0x432737
xor eax, eax
mov al, byte [0x446b78]
dec eax
test eax, eax
jb 0x432737
inc eax
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x10], 0
mov dword [ebp - 0x30], 0x446b7c
mov eax, dword [ebp - 0x30]
mov eax, dword [eax]
mov edi, eax
mov eax, dword [edi + 0x6f8]
push eax
push 1
mov ecx, 0x432a30
xor edx, edx
xor eax, eax
call fcn.0042f5ec
mov eax, dword [edi + 0x4c]
push eax
push 0
mov ecx, 0x432a44
xor edx, edx
xor eax, eax
call fcn.0042f5ec
mov eax, dword [edi + 0x40]
push eax
push 0
mov ecx, 0x432a54
xor edx, edx
xor eax, eax
call fcn.0042f5ec
cmp byte [0x446c70], 0
je 0x43088b
mov eax, dword [edi + 0x44]
push eax
push 0
mov ecx, 0x432a6c
xor edx, edx
mov eax, 0x432a80
call fcn.0042f5ec
cmp byte [0x446c68], 0
je 0x430877
cmp byte [edi + 0x48], 0
jne 0x43088b
mov al, byte [edi + 0x48]
push eax
push 0
mov ecx, 0x432aac
xor edx, edx
xor eax, eax
call fcn.0042f870
push dword [edi + 0x5c]
push dword [edi + 0x58]
lea edx, [ebp - 0x6c]
xor eax, eax
call fcn.0040df90
mov eax, dword [ebp - 0x6c]
push eax
push 0
mov ecx, 0x432ac8
xor edx, edx
mov eax, 0x432adc
call fcn.0042f5ec
mov bl, byte [edi + 0x2761]
test bl, bl
je 0x4308dd
lea edx, [ebp - 0x70]
mov eax, ebx
call fcn.0041f62c
mov eax, dword [ebp - 0x70]
push eax
push 0
mov ecx, 0x432b2c
xor edx, edx
mov eax, 0x432b40
call fcn.0042f5ec
push 0
mov ecx, 0x432b70
xor edx, edx
xor eax, eax
call fcn.0042f4f0
cmp byte [edi + 0x70b], 0
je 0x43090b
push 1
mov ecx, 0x432b88
xor edx, edx
mov eax, 0x432b98
call fcn.0042f4f0
jmp 0x43095a
mov al, byte [edi + 0x2760]
sub al, 1
jb 0x43091d
je 0x430932
sub al, 0xd
je 0x430947
jmp 0x43095a
push 1
mov ecx, 0x432bcc
xor edx, edx
mov eax, 0x432bdc
call fcn.0042f4f0
jmp 0x43095a
push 1
mov ecx, 0x432c04
xor edx, edx
mov eax, 0x432c14
call fcn.0042f4f0
jmp 0x43095a
push 1
mov ecx, 0x432c3c
xor edx, edx
mov eax, 0x432c4c
call fcn.0042f4f0
cmp byte [0x446c70], 0
je 0x430ae8
cmp byte [edi + 0x70b], 0
je 0x430997
lea edx, [ebp - 0x74]
mov eax, dword [edi + 0x710]
call fcn.0041fb0c
mov eax, dword [ebp - 0x74]
push eax
push 0
mov ecx, 0x432c80
xor edx, edx
xor eax, eax
call fcn.0042f5ec
jmp 0x430a34
cmp byte [edi + 0x2760], 1
jne 0x4309c5
cmp byte [edi + 0x61], 0
je 0x4309c5
lea edx, [ebp - 0x78]
mov al, byte [edi + 0x61]
call fcn.0041f8d8
mov eax, dword [ebp - 0x78]
push eax
push 0
mov ecx, 0x432c98
xor edx, edx
xor eax, eax
call fcn.0042f5ec
push 0
mov ecx, 0x432cb0
xor edx, edx
mov eax, 0x432cc4
call fcn.0042f4f0
push 1
lea edx, [ebp - 0x80]
mov al, byte [edi + 0x60]
call fcn.0041fa34
mov ecx, dword [ebp - 0x80]
lea eax, [ebp - 0x7c]
mov edx, 0x432cf4
call fcn.00403df4
mov ecx, dword [ebp - 0x7c]
xor edx, edx
xor eax, eax
call fcn.0042f4f0
cmp byte [edi + 0x70a], 0
je 0x430a34
push 0
mov ecx, 0x432d00
xor edx, edx
mov eax, 0x432d0c
call fcn.0042f4f0
mov eax, dword [edi + 0x6fc]
push eax
push 1
mov ecx, 0x432d44
xor edx, edx
xor eax, eax
call fcn.0042f5ec
cmp byte [edi + 0x70b], 0
je 0x430ab7
cmp byte [edi + 0x272d], 0
je 0x430a72
xor eax, eax
mov al, byte [edi + 0x272d]
push eax
push 0
mov ecx, 0x432d58
xor edx, edx
mov eax, 0x432d7c
call fcn.0042f734
push 1
mov ecx, 0x432db4
xor edx, edx
xor eax, eax
call fcn.0042f4f0
cmp byte [0x446c68], 0
je 0x430a87
cmp dword [edi + 0x271c], 0x200
je 0x430ae8
cmp dword [edi + 0x271c], 0x200
setne al
push eax
cmp dword [edi + 0x50], 0x200
setne al
push eax
push 0xffffffffffffffff
push 0
mov ecx, 0x432dc0
xor edx, edx
mov eax, 0x432dd8
call fcn.0042f9d0
jmp 0x430ae8
cmp byte [0x446c68], 0
je 0x430ac9
cmp dword [edi + 0x50], 0x200
je 0x430ae8
cmp dword [edi + 0x50], 0x200
setne al
push eax
push 0
push 0x432dd8
mov ecx, 0x432dc0
xor edx, edx
pop eax
call fcn.0042f870
cmp byte [0x446c70], 0
je 0x430b0e
push 0
xor ecx, ecx
xor edx, edx
xor eax, eax
call fcn.0042f4f0
push 0
mov ecx, 0x432e10
xor edx, edx
xor eax, eax
call fcn.0042f4f0
cmp byte [0x446c70], 0
je 0x430e46
cmp byte [edi + 0x70b], 0
je 0x430c84
lea ecx, [ebp - 0x88]
mov dl, byte [edi + 0x2721]
mov al, byte [edi + 0x2720]
call fcn.0041f57c
push dword [ebp - 0x88]
push 0x432e28
push 0x432e34
push 0x432e44
lea eax, [ebp - 0x84]
mov edx, 4
call fcn.00403e68
mov eax, dword [ebp - 0x84]
push eax
push 0
mov ecx, 0x432e50
mov dl, 1
xor eax, eax
call fcn.0042f5ec
push 1
mov eax, 0x432c4c
mov ecx, 0x432c3c
xor edx, edx
call fcn.0042f4f0
push 1
push 0x432e28
lea edx, [ebp - 0x90]
xor eax, eax
mov al, byte [edi + 0x2720]
call fcn.0040628c
push dword [ebp - 0x90]
push 0x432e70
lea edx, [ebp - 0x94]
xor eax, eax
mov al, byte [edi + 0x2721]
call fcn.0040628c
push dword [ebp - 0x94]
push 0x432e80
lea eax, [ebp - 0x8c]
mov edx, 5
call fcn.00403e68
mov ecx, dword [ebp - 0x8c]
xor edx, edx
xor eax, eax
call fcn.0042f4f0
lea ecx, [ebp - 0x9c]
mov dl, byte [edi + 0x2723]
mov al, byte [edi + 0x2722]
call fcn.0041f57c
push dword [ebp - 0x9c]
push 0x432e28
push 0x432e34
push 0x432e8c
lea edx, [ebp - 0xa0]
xor eax, eax
mov al, byte [edi + 0x2722]
call fcn.0040628c
push dword [ebp - 0xa0]
push 0x432e70
lea edx, [ebp - 0xa4]
xor eax, eax
mov al, byte [edi + 0x2723]
call fcn.0040628c
push dword [ebp - 0xa4]
push 0x432e80
lea eax, [ebp - 0x98]
mov edx, 8
call fcn.00403e68
mov eax, dword [ebp - 0x98]
push eax
push 0
mov ecx, 0x432e9c
mov dl, 1
xor eax, eax
call fcn.0042f5ec
jmp 0x430df6
cmp byte [edi + 0x2760], 0
jne 0x430d60
lea edx, [ebp - 0xac]
mov al, byte [edi + 0x6a]
call fcn.0041f77c
push dword [ebp - 0xac]
push 0x432e28
push 0x432e34
push 0x432ebc
lea edx, [ebp - 0xb0]
xor eax, eax
mov al, byte [edi + 0x6a]
call fcn.0040628c
push dword [ebp - 0xb0]
push 0x432e80
lea eax, [ebp - 0xa8]
mov edx, 6
call fcn.00403e68
mov eax, dword [ebp - 0xa8]
push eax
push 0
mov ecx, 0x432e50
mov dl, 1
xor eax, eax
call fcn.0042f5ec
lea edx, [ebp - 0xb8]
mov al, byte [edi + 0x69]
call fcn.0041f77c
push dword [ebp - 0xb8]
push 0x432e28
push 0x432e34
push 0x432ebc
lea edx, [ebp - 0xbc]
xor eax, eax
mov al, byte [edi + 0x69]
call fcn.0040628c
push dword [ebp - 0xbc]
push 0x432e80
lea eax, [ebp - 0xb4]
mov edx, 6
call fcn.00403e68
mov eax, dword [ebp - 0xb4]
push eax
push 0
mov ecx, 0x432e9c
mov dl, 1
xor eax, eax
call fcn.0042f5ec
jmp 0x430df6
cmp byte [edi + 0x62], 0
je 0x430dab
lea edx, [ebp - 0xc4]
mov al, byte [edi + 0x62]
call fcn.0041f878
push dword [ebp - 0xc4]
push 0x432e28
push 0x432e34
lea eax, [ebp - 0xc0]
mov edx, 3
call fcn.00403e68
mov eax, dword [ebp - 0xc0]
push eax
push 0
mov ecx, 0x432e50
mov dl, 1
xor eax, eax
call fcn.0042f5ec
cmp byte [edi + 0x63], 0
je 0x430df6
lea edx, [ebp - 0xcc]
mov al, byte [edi + 0x63]
call fcn.0041f878
push dword [ebp - 0xcc]
push 0x432e28
push 0x432e34
lea eax, [ebp - 0xc8]
mov edx, 3
call fcn.00403e68
mov eax, dword [ebp - 0xc8]
push eax
push 0
mov ecx, 0x432e9c
mov dl, 1
xor eax, eax
call fcn.0042f5ec
movzx eax, word [edi + 0x6b6]
push eax
push 0
mov ecx, 0x432ed4
mov dl, 1
xor eax, eax
call fcn.0042f734
push 1
mov ecx, 0x432ef0
xor edx, edx
xor eax, eax
call fcn.0042f4f0
movzx eax, word [edi + 0x6b8]
push eax
push 0
mov ecx, 0x432f00
mov dl, 1
xor eax, eax
call fcn.0042f734
push 1
mov ecx, 0x432ef0
xor edx, edx
xor eax, eax
call fcn.0042f4f0
movzx eax, word [edi + 0x6b4]
push eax
push 0
mov ecx, 0x432f1c
mov dl, 1
xor eax, eax
call fcn.0042f734
push 1
mov ecx, 0x432ef0
xor edx, edx
xor eax, eax
call fcn.0042f4f0
cmp byte [0x446c70], 0
je 0x430f9d
movzx eax, word [edi + 0x6be]
push eax
push 0
mov ecx, 0x432f38
mov dl, 1
xor eax, eax
call fcn.0042f734
push 1
mov ecx, 0x432ef0
xor edx, edx
xor eax, eax
call fcn.0042f4f0
movzx eax, word [edi + 0x6ba]
push eax
push 0
mov ecx, 0x432f54
mov dl, 1
xor eax, eax
call fcn.0042f734
push 1
mov ecx, 0x432ef0
xor edx, edx
xor eax, eax
call fcn.0042f4f0
mov si, word [edi + 0x6b4]
mov bx, word [edi + 0x6ba]
cmp si, bx
jae 0x430f2a
movzx eax, bx
mov dword [ebp - 0xd8], eax
fild dword [ebp - 0xd8]
movzx eax, si
mov dword [ebp - 0xdc], eax
fild dword [ebp - 0xdc]
fdivp st(1)
fsub dword [0x432f68]
fmul dword [0x432f6c]
add esp, 0xfffffff8
fstp qword [esp]
wait
lea eax, [ebp - 0xd4]
call fcn.00406208
mov al, byte [ebp - 0xd4]
mov byte [edi + 0x6bc], al
jmp 0x430f74
movzx eax, si
mov dword [ebp - 0xd8], eax
fild dword [ebp - 0xd8]
movzx eax, bx
mov dword [ebp - 0xdc], eax
fild dword [ebp - 0xdc]
fdivp st(1)
fsub dword [0x432f68]
fmul dword [0x432f6c]
add esp, 0xfffffff8
fstp qword [esp]
wait
lea eax, [ebp - 0xd4]
call fcn.00406208
mov al, byte [ebp - 0xd4]
mov byte [edi + 0x6bc], al
xor eax, eax
mov al, byte [edi + 0x6bc]
push eax
push 0
mov ecx, 0x432f78
mov dl, 1
xor eax, eax
call fcn.0042f734
push 1
mov ecx, 0x432f98
xor edx, edx
xor eax, eax
call fcn.0042f4f0
xor eax, eax
mov al, byte [edi + 0x6b2]
push eax
push 0
mov ecx, 0x432fa4
mov dl, 1
mov eax, 0x432fc0
call fcn.0042f734
mov bl, byte [edi + 0x6b3]
test bl, bl
je 0x430ff9
push 1
lea edx, [ebp - 0xe4]
xor eax, eax
mov al, bl
call fcn.0040628c
mov ecx, dword [ebp - 0xe4]
lea eax, [ebp - 0xe0]
mov edx, 0x432ff0
call fcn.00403df4
mov ecx, dword [ebp - 0xe0]
xor edx, edx
xor eax, eax
call fcn.0042f4f0
push 1
mov ecx, 0x432ffc
xor edx, edx
xor eax, eax
call fcn.0042f4f0
cmp byte [0x446c70], 0
je 0x431579
cmp byte [edi + 0x70a], 0
jne 0x431054
cmp word [edi + 0x275a], 0
je 0x431054
movzx eax, word [edi + 0x275a]
push eax
push 0
mov ecx, 0x43300c
mov dl, 1
mov eax, 0x433024
call fcn.0042f734
push 1
mov ecx, 0x433054
xor edx, edx
xor eax, eax
call fcn.0042f4f0
mov ebx, dword [edi + 0x64]
test ebx, ebx
je 0x431088
mov eax, ebx
xor edx, edx
push edx
push eax
lea edx, [ebp - 0xe8]
xor eax, eax
call fcn.0040df90
mov eax, dword [ebp - 0xe8]
push eax
push 0
mov ecx, 0x433064
mov dl, 1
mov eax, 0x43307c
call fcn.0042f5ec
cmp byte [0x446c68], 0
je 0x431097
cmp byte [edi + 0x73], 0
jne 0x4310b4
mov al, byte [edi + 0x72]
push eax
mov al, byte [edi + 0x73]
push eax
push 0xffffffffffffffff
push 0
mov ecx, 0x4330a4
mov dl, 1
mov eax, 0x4330c4
call fcn.0042f9d0
cmp byte [edi + 0x70b], 0
jne 0x4310e9
cmp byte [0x446c68], 0
je 0x4310cc
cmp byte [edi + 0x75], 0
jne 0x4310e9
mov al, byte [edi + 0x74]
push eax
mov al, byte [edi + 0x75]
push eax
push 0xffffffffffffffff
push 0
mov ecx, 0x4330f0
mov dl, 1
mov eax, 0x433108
call fcn.0042f9d0
cmp byte [edi + 0x70a], 0
jne 0x43113e
cmp byte [0x446c68], 0
je 0x431101
cmp byte [edi + 0x7a], 0
je 0x43113e
mov al, byte [edi + 0x7a]
push eax
mov al, byte [edi + 0x7b]
push eax
xor eax, eax
mov al, byte [edi + 0x7c]
push eax
push 0
mov ecx, 0x433138
mov dl, 1
mov eax, 0x433160
call fcn.0042f9d0
cmp byte [edi + 0x7a], 0
je 0x43113e
xor eax, eax
mov al, byte [edi + 0x7d]
push eax
push 0
mov ecx, 0x433188
mov dl, 1
xor eax, eax
call fcn.0042f734
cmp byte [edi + 0x70b], 0
jne 0x431177
cmp byte [0x446c68], 0
je 0x431156
cmp byte [edi + 0x77], 0
je 0x431177
mov al, byte [edi + 0x77]
push eax
mov al, byte [edi + 0x78]
push eax
xor eax, eax
mov al, byte [edi + 0x79]
push eax
push 0
mov ecx, 0x4331b0
mov dl, 1
mov eax, 0x4331d4
call fcn.0042f9d0
cmp byte [edi + 0x70b], 0
jne 0x431261
cmp byte [edi + 0x70a], 0
je 0x4311c2
cmp byte [0x446c68], 0
je 0x43119f
cmp byte [edi + 0x8c], 0
je 0x4311c2
mov al, byte [edi + 0x8b]
push eax
mov al, byte [edi + 0x8c]
push eax
push 0xffffffffffffffff
push 0
mov ecx, 0x4331fc
mov dl, 1
mov eax, 0x43321c
call fcn.0042f9d0
cmp byte [edi + 0x2760], 0
jne 0x4311f7
cmp byte [0x446c68], 0
je 0x4311dd
cmp byte [edi + 0x88], 0
je 0x4311f7
mov al, byte [edi + 0x88]
push eax
push 0
mov ecx, 0x43324c
mov dl, 1
mov eax, 0x433268
call fcn.0042f870
cmp byte [edi + 0x8a], 0
jne 0x43122c
cmp byte [0x446c68], 0
je 0x431212
cmp byte [edi + 0x89], 0
je 0x43122c
mov al, byte [edi + 0x89]
push eax
push 0
mov ecx, 0x433294
mov dl, 1
mov eax, 0x4332b4
call fcn.0042f870
cmp byte [edi + 0x2760], 0
je 0x431261
cmp byte [0x446c68], 0
je 0x431247
cmp byte [edi + 0x8a], 0
jne 0x431261
mov al, byte [edi + 0x8a]
push eax
push 0
mov ecx, 0x4332dc
mov dl, 1
mov eax, 0x4332fc
call fcn.0042f870
cmp byte [edi + 0x70a], 0
je 0x4312a8
cmp byte [0x446c68], 0
je 0x431285
cmp byte [edi + 0x275c], 0
je 0x431285
cmp byte [edi + 0x275d], 0
jne 0x4312a8
mov al, byte [edi + 0x275c]
push eax
mov al, byte [edi + 0x275d]
push eax
push 0xffffffffffffffff
push 0
mov ecx, 0x433324
mov dl, 1
mov eax, 0x433334
call fcn.0042f9d0
cmp byte [edi + 0x70b], 0
je 0x431441
mov al, byte [edi + 0x2724]
push eax
mov al, byte [edi + 0x2725]
push eax
push 0xffffffffffffffff
push 0
mov ecx, 0x43336c
mov dl, 1
xor eax, eax
call fcn.0042f9d0
cmp dword [edi + 0x2728], 0
je 0x431326
push 1
push 0x432e44
mov eax, dword [edi + 0x2728]
xor edx, edx
push edx
push eax
lea edx, [ebp - 0xf0]
xor eax, eax
call fcn.0040df90
push dword [ebp - 0xf0]
push 0x432e80
lea eax, [ebp - 0xec]
mov edx, 3
call fcn.00403e68
mov ecx, dword [ebp - 0xec]
xor edx, edx
xor eax, eax
call fcn.0042f4f0
mov al, byte [edi + 0x272f]
push eax
cmp byte [edi + 0x2730], 0
jne 0x431343
cmp byte [edi + 0x2731], 0
jne 0x431343
xor eax, eax
jmp 0x431345
mov al, 1
push eax
push 0xffffffffffffffff
push 0
mov ecx, 0x433390
mov dl, 1
xor eax, eax
call fcn.0042f9d0
cmp byte [edi + 0x272f], 0
je 0x431441
cmp byte [edi + 0x2730], 0
je 0x4313d3
lea edx, [ebp - 0xf4]
mov al, byte [edi + 0x2730]
call fcn.00430514
mov eax, dword [ebp - 0xf4]
push eax
push 0
mov ecx, 0x4333b8
mov dl, 1
xor eax, eax
call fcn.0042f5ec
lea eax, [edi + 0x385]
mov eax, dword [eax]
push eax
push 0
mov ecx, 0x4333e0
mov dl, 1
xor eax, eax
call fcn.0042f734
lea eax, [edi + 0x38d]
cmp dword [eax], 0
je 0x4313d3
lea eax, [edi + 0x38d]
mov eax, dword [eax]
push eax
push 0
mov ecx, 0x433400
mov dl, 1
xor eax, eax
call fcn.0042f734
cmp byte [edi + 0x2731], 0
je 0x431441
lea edx, [ebp - 0xf8]
mov al, byte [edi + 0x2731]
call fcn.00430514
mov eax, dword [ebp - 0xf8]
push eax
push 0
mov ecx, 0x43342c
mov dl, 1
xor eax, eax
call fcn.0042f5ec
lea eax, [edi + 0x389]
mov eax, dword [eax]
push eax
push 0
mov ecx, 0x433454
mov dl, 1
xor eax, eax
call fcn.0042f734
lea eax, [edi + 0x391]
cmp dword [eax], 0
je 0x431441
lea eax, [edi + 0x391]
mov eax, dword [eax]
push eax
push 0
mov ecx, 0x433474
mov dl, 1
xor eax, eax
call fcn.0042f734
push 0
xor ecx, ecx
xor edx, edx
xor eax, eax
call fcn.0042f4f0
push 0
mov ecx, 0x4334a0
xor edx, edx
xor eax, eax
call fcn.0042f4f0
cmp byte [edi + 0x70b], 0
jne 0x431483
xor eax, eax
mov al, byte [edi + 0x2ac]
push eax
push 0
mov ecx, 0x4334b8
mov dl, 1
mov eax, 0x4334d4
call fcn.0042f734
mov al, byte [edi + 0x6ad]
test al, al
je 0x431568
cmp byte [edi + 0x6ae], 0
je 0x4314dd
push 0
mov ecx, 0x433508
mov dl, 1
xor eax, eax
call fcn.0042f4f0
mov al, byte [edi + 0x6ae]
push eax
push 1
mov ecx, 0x433518
xor edx, edx
mov eax, 0x43352c
call fcn.0042f870
xor eax, eax
mov al, byte [edi + 0x6ae]
push eax
push 1
mov ecx, 0x433558
xor edx, edx
xor eax, eax
call fcn.0042f734
cmp byte [edi + 0x6b1], 0
je 0x431579
mov al, byte [edi + 0x6b1]
push eax
push 0
mov ecx, 0x433578
mov dl, 1
xor eax, eax
call fcn.0042f870
push 1
mov ecx, 0x433558
xor edx, edx
xor eax, eax
call fcn.0042f4f0
cmp byte [edi + 0x6b1], 0xff
jne 0x43152c
push 1
mov ecx, 0x433590
xor edx, edx
xor eax, eax
call fcn.0042f4f0
jmp 0x431579
push 1
lea edx, [ebp - 0x100]
xor eax, eax
mov al, byte [edi + 0x6b1]
call fcn.0040628c
mov ecx, dword [ebp - 0x100]
mov edx, 0x432cf4
lea eax, [ebp - 0xfc]
call fcn.00403df4
mov ecx, dword [ebp - 0xfc]
xor edx, edx
xor eax, eax
call fcn.0042f4f0
jmp 0x431579
push eax
push 0
mov ecx, 0x4335a0
mov dl, 1
xor eax, eax
call fcn.0042f870
mov bl, byte [edi + 0x92]
test bl, bl
je 0x4315af
cmp bl, byte [edi + 0x91]
je 0x4315af
lea edx, [ebp - 0x104]
mov eax, ebx
call fcn.00430514
mov eax, dword [ebp - 0x104]
push eax
push 0
mov ecx, 0x4335b4
mov dl, 1
xor eax, eax
call fcn.0042f5ec
mov bl, byte [edi + 0x91]
test bl, bl
je 0x4315dd
lea edx, [ebp - 0x108]
mov eax, ebx
call fcn.00430514
mov eax, dword [ebp - 0x108]
push eax
push 0
mov ecx, 0x4335dc
mov dl, 1
xor eax, eax
call fcn.0042f5ec
mov bl, byte [edi + 0x8f]
test bl, bl
je 0x43160b
lea edx, [ebp - 0x10c]
mov eax, ebx
call fcn.00430514
mov eax, dword [ebp - 0x10c]
push eax
push 0
mov ecx, 0x433604
mov dl, 1
xor eax, eax
call fcn.0042f5ec
mov bl, byte [edi + 0x8e]
test bl, bl
je 0x43163c
lea edx, [ebp - 0x110]
mov eax, ebx
call fcn.00430514
mov eax, dword [ebp - 0x110]
push eax
push 0
mov ecx, 0x433620
mov dl, 1
mov eax, 0x43363c
call fcn.0042f5ec
cmp byte [edi + 0x6dd], 0
je 0x43169f
cmp byte [0x446c68], 0
je 0x431673
cmp dword [edi + 0x6e0], 0
je 0x43169f
mov eax, dword [edi + 0x6e0]
push eax
push 0
mov ecx, 0x43366c
mov dl, 1
mov eax, 0x433688
call fcn.0042f734
jmp 0x43169f
cmp byte [0x446c70], 0
jne 0x431685
cmp dword [edi + 0x6e0], 0
je 0x43169f
mov eax, dword [edi + 0x6e0]
push eax
push 0
mov ecx, 0x43366c
mov dl, 1
mov eax, 0x433688
call fcn.0042f734
cmp byte [edi + 0x70b], 0
jne 0x4316b1
cmp byte [edi + 0x6d0], 0
je 0x4316c8
mov eax, dword [edi + 0x6d4]
push eax
push 0
mov ecx, 0x4336b4
mov dl, 1
xor eax, eax
call fcn.0042f734
cmp byte [edi + 0x70b], 0
jne 0x4316da
cmp byte [edi + 0x6c0], 0
je 0x431728
cmp byte [edi + 0x70b], 0
jne 0x4316ec
cmp dword [edi + 0x6c4], 0
je 0x431710
mov eax, dword [edi + 0x6cc]
xor edx, edx
div dword [edi + 0x6c4]
push eax
push 0
mov ecx, 0x4336d8
mov dl, 1
mov eax, 0x4336f4
call fcn.0042f734
jmp 0x431728
push 0x433720
push 0
mov ecx, 0x4336d8
mov dl, 1
mov eax, 0x4336f4
call fcn.0042f5ec
cmp byte [0x446c70], 0
je 0x4317a5
cmp byte [edi + 0x70a], 0
jne 0x4317a5
cmp byte [0x446c68], 0
je 0x431749
cmp byte [edi + 0x7e], 0
je 0x4317a5
mov al, byte [edi + 0x7e]
push eax
mov al, byte [edi + 0x7f]
push eax
push 0xffffffffffffffff
push 0
mov ecx, 0x433738
mov dl, 1
mov eax, 0x433754
call fcn.0042f9d0
cmp byte [edi + 0x7f], 0
je 0x4317a5
cmp byte [edi + 0x80], 0
je 0x431790
xor eax, eax
mov al, byte [edi + 0x80]
push eax
push 0
mov ecx, 0x433788
mov dl, 1
xor eax, eax
call fcn.0042f734
jmp 0x4317a5
push 0x4337b0
push 0
mov ecx, 0x433788
mov dl, 1
xor eax, eax
call fcn.0042f5ec
cmp byte [edi + 0x70b], 0
jne 0x4317e3
cmp byte [0x446c70], 0
je 0x4317e3
cmp byte [0x446c68], 0
je 0x4317c9
cmp byte [edi + 0x81], 0
jne 0x4317e3
mov al, byte [edi + 0x81]
push eax
push 0
mov ecx, 0x4337d4
mov dl, 1
mov eax, 0x4337fc
call fcn.0042f870
cmp byte [edi + 0xa6], 0
je 0x431813
push 0x433824
push 0
mov ecx, 0x433838
mov dl, 1
xor eax, eax
call fcn.0042f5ec
push 0
mov ecx, 0x43384c
mov dl, 1
xor eax, eax
call fcn.0042f4f0
jmp 0x431883
push 0x433874
push 0
mov ecx, 0x433838
mov dl, 1
xor eax, eax
call fcn.0042f5ec
cmp byte [edi + 0xa9], 0
je 0x431851
push 1
mov ecx, 0x433888
xor edx, edx
xor eax, eax
call fcn.0042f4f0
push 0
mov ecx, 0x4338a0
mov dl, 1
xor eax, eax
call fcn.0042f4f0
cmp byte [edi + 0xa7], 0
je 0x43186a
push 1
mov ecx, 0x4338d8
xor edx, edx
xor eax, eax
call fcn.0042f4f0
cmp byte [edi + 0xaa], 0
je 0x431883
push 1
mov ecx, 0x4338f4
xor edx, edx
xor eax, eax
call fcn.0042f4f0
cmp byte [0x446c70], 0
je 0x43257b
push 0
xor ecx, ecx
xor edx, edx
xor eax, eax
call fcn.0042f4f0
push 0
mov ecx, 0x433910
xor edx, edx
xor eax, eax
call fcn.0042f4f0
cmp byte [0x446c68], 0
je 0x4318bc
cmp byte [edi + 0x6c], 0
je 0x43192d
cmp byte [edi + 0x70b], 0
je 0x4318db
mov al, byte [edi + 0x6b]
push eax
push 0
mov ecx, 0x433924
mov dl, 1
xor eax, eax
call fcn.0042f870
jmp 0x4318f5
mov al, byte [edi + 0x6b]
push eax
mov al, byte [edi + 0x6c]
push eax
push 0xffffffffffffffff
push 0
mov ecx, 0x433924
mov dl, 1
xor eax, eax
call fcn.0042f9d0
cmp byte [edi + 0x6c], 0
je 0x43192d
cmp byte [edi + 0x6d], 0
je 0x431918
push 0x433948
push 0
mov ecx, 0x43395c
mov dl, 1
xor eax, eax
call fcn.0042f5ec
jmp 0x43192d
push 0x433978
push 0
mov ecx, 0x43395c
mov dl, 1
xor eax, eax
call fcn.0042f5ec
cmp byte [edi + 0x70b], 0
jne 0x43195c
cmp byte [0x446c68], 0
je 0x431945
cmp byte [edi + 0x6e], 0
jne 0x43195c
mov al, byte [edi + 0x6e]
push eax
push 0
mov ecx, 0x433988
mov dl, 1
mov eax, 0x4339a8
call fcn.0042f870
cmp byte [0x446c68], 0
je 0x43196b
cmp byte [edi + 0x70], 0
je 0x431982
mov al, byte [edi + 0x70]
push eax
push 0
mov ecx, 0x4339e4
mov dl, 1
mov eax, 0x433a08
call fcn.0042f870
cmp byte [edi + 0x6b], 0
je 0x4319cb
cmp dword [edi + 0x6e4], 0
je 0x4319cb
cmp dword [edi + 0x6e4], 0x1fe
je 0x4319b6
mov eax, dword [edi + 0x6e4]
push eax
push 0
mov ecx, 0x433a4c
mov dl, 1
xor eax, eax
call fcn.0042f734
jmp 0x4319cb
push 0x433a78
push 0
mov ecx, 0x433a4c
mov dl, 1
xor eax, eax
call fcn.0042f5ec
cmp byte [edi + 0x70b], 0
jne 0x431a5c
cmp byte [0x446c68], 0
jne 0x4319fb
mov al, byte [edi + 0x85]
push eax
push 0
mov ecx, 0x433a88
mov dl, 1
mov eax, 0x433aac
call fcn.0042f870
cmp byte [edi + 0x86], 0
je 0x431a36
cmp byte [0x446c68], 0
je 0x431a16
cmp byte [edi + 0x87], 0
je 0x431a36
mov al, byte [edi + 0x86]
push eax
mov al, byte [edi + 0x87]
push eax
push 0xffffffffffffffff
push 0
mov ecx, 0x433ad4
mov dl, 1
xor eax, eax
call fcn.0042f9d0
cmp byte [0x446c68], 0
je 0x431a45
cmp byte [edi + 0x71], 0
je 0x431a5c
mov al, byte [edi + 0x71]
push eax
push 0
mov ecx, 0x433afc
mov dl, 1
mov eax, 0x433b18
call fcn.0042f870
push 0
xor ecx, ecx
xor edx, edx
xor eax, eax
call fcn.0042f4f0
push 0
mov ecx, 0x433b50
xor edx, edx
xor eax, eax
call fcn.0042f4f0
cmp byte [edi + 0x70b], 0
je 0x431eb8
xor eax, eax
mov al, byte [edi + 0x2ad]
push eax
push 0
mov ecx, 0x433b64
mov dl, 1
xor eax, eax
call fcn.0042f734
lea eax, [edi + 0x2ae]
movzx eax, word [eax]
push eax
push 0
mov ecx, 0x433b80
mov dl, 1
xor eax, eax
call fcn.0042f734
xor eax, eax
mov al, byte [edi + 0x2b0]
push eax
push 0
mov ecx, 0x433ba0
mov dl, 1
xor eax, eax
call fcn.0042f734
xor eax, eax
mov al, byte [edi + 0x2b1]
push eax
push 0
mov ecx, 0x433bb8
mov dl, 1
xor eax, eax
call fcn.0042f734
xor eax, eax
mov al, byte [edi + 0x2b2]
push eax
push 0
mov ecx, 0x433bdc
mov dl, 1
xor eax, eax
call fcn.0042f734
lea eax, [edi + 0x76e]
movzx eax, word [eax]
add eax, eax
lea eax, [eax + eax*4]
xor edx, edx
mov dl, byte [edi + 0x76d]
add eax, edx
cmp eax, 0xd
jbe 0x431b3a
xor eax, eax
mov al, byte [edi + 0x2b3]
push eax
push 0
mov ecx, 0x433bf4
mov dl, 1
xor eax, eax
call fcn.0042f734
lea eax, [edi + 0x2cd]
mov eax, dword [eax]
push eax
push 0
mov ecx, 0x433c28
mov dl, 1
xor eax, eax
call fcn.0042f734
lea eax, [edi + 0x2dd]
mov eax, dword [eax]
push eax
push 0
mov ecx, 0x433c40
mov dl, 1
xor eax, eax
call fcn.0042f734
lea eax, [edi + 0x2ed]
mov eax, dword [eax]
push eax
push 0
mov ecx, 0x433c5c
mov dl, 1
xor eax, eax
call fcn.0042f734
lea eax, [edi + 0x2fd]
mov eax, dword [eax]
push eax
push 0
mov ecx, 0x433c78
mov dl, 1
xor eax, eax
call fcn.0042f734
lea eax, [edi + 0x30d]
mov eax, dword [eax]
push eax
push 0
mov ecx, 0x433c94
mov dl, 1
xor eax, eax
call fcn.0042f734
lea eax, [edi + 0x31d]
mov eax, dword [eax]
push eax
push 0
mov ecx, 0x433cb4
mov dl, 1
xor eax, eax
call fcn.0042f734
lea eax, [edi + 0x32d]
mov eax, dword [eax]
push eax
push 0
mov ecx, 0x433ccc
mov dl, 1
xor eax, eax
call fcn.0042f734
lea eax, [edi + 0x33d]
mov eax, dword [eax]
push eax
push 0
mov ecx, 0x433ce4
mov dl, 1
xor eax, eax
call fcn.0042f734
lea eax, [edi + 0x34d]
mov eax, dword [eax]
push eax
push 0
mov ecx, 0x433d00
mov dl, 1
xor eax, eax
call fcn.0042f734
lea eax, [edi + 0x35d]
mov eax, dword [eax]
push eax
push 0
mov ecx, 0x433d28
mov dl, 1
xor eax, eax
call fcn.0042f734
lea eax, [edi + 0x76e]
movzx eax, word [eax]
add eax, eax
lea eax, [eax + eax*4]
xor edx, edx
mov dl, byte [edi + 0x76d]
add eax, edx
cmp eax, 0xb
jbe 0x431cf8
lea eax, [edi + 0x36d]
mov eax, dword [eax]
push eax
push 0
mov ecx, 0x433d58
mov dl, 1
xor eax, eax
call fcn.0042f734
lea eax, [edi + 0x371]
mov eax, dword [eax]
push eax
push 0
mov ecx, 0x433d84
mov dl, 1
xor eax, eax
call fcn.0042f734
xor ebx, ebx
mov esi, ebx
and esi, 0xff
mov eax, esi
add eax, eax
add eax, 0xc8
lea eax, [edi + eax + 0x2ad]
cmp word [eax], 0
je 0x431cf2
xor eax, eax
mov al, bl
add eax, eax
add eax, 0xc8
lea eax, [edi + eax + 0x2ad]
movzx eax, word [eax]
push eax
push 0
lea edx, [ebp - 0x118]
mov eax, esi
inc eax
call fcn.0040628c
mov ecx, dword [ebp - 0x118]
lea eax, [ebp - 0x114]
mov edx, 0x433db0
call fcn.00403df4
mov ecx, dword [ebp - 0x114]
mov dl, 1
xor eax, eax
call fcn.0042f734
inc ebx
cmp bl, 8
jne 0x431c89
lea eax, [edi + 0x76e]
movzx eax, word [eax]
add eax, eax
lea eax, [eax + eax*4]
xor edx, edx
mov dl, byte [edi + 0x76d]
add eax, edx
cmp eax, 0xc
jbe 0x431d79
lea eax, [edi + 0x385]
mov eax, dword [eax]
push eax
push 0
mov ecx, 0x433dcc
mov dl, 1
xor eax, eax
call fcn.0042f734
lea eax, [edi + 0x389]
mov eax, dword [eax]
push eax
push 0
mov ecx, 0x433e08
mov dl, 1
xor eax, eax
call fcn.0042f734
lea eax, [edi + 0x38d]
mov eax, dword [eax]
push eax
push 0
mov ecx, 0x433e44
mov dl, 1
xor eax, eax
call fcn.0042f734
lea eax, [edi + 0x391]
mov eax, dword [eax]
push eax
push 0
mov ecx, 0x433e7c
mov dl, 1
xor eax, eax
call fcn.0042f734
cmp byte [edi + 0x2ad], 0
je 0x431e29
push 0
xor ecx, ecx
mov dl, 1
xor eax, eax
call fcn.0042f4f0
test byte [edi + 0x2ad], 1
je 0x431dac
push 0
mov ecx, 0x433eb4
mov dl, 1
xor eax, eax
call fcn.0042f4f0
test byte [edi + 0x2ad], 2
je 0x431dc5
push 0
mov ecx, 0x433efc
mov dl, 1
xor eax, eax
call fcn.0042f4f0
test byte [edi + 0x2ad], 4
je 0x431dde
push 0
mov ecx, 0x433f38
mov dl, 1
xor eax, eax
call fcn.0042f4f0
test byte [edi + 0x2ad], 8
je 0x431df7
push 0
mov ecx, 0x433f84
mov dl, 1
xor eax, eax
call fcn.0042f4f0
test byte [edi + 0x2ad], 0x10
je 0x431e10
push 0
mov ecx, 0x433fbc
mov dl, 1
xor eax, eax
call fcn.0042f4f0
test byte [edi + 0x2ad], 0x20
je 0x431e29
push 0
mov ecx, 0x433ff4
mov dl, 1
xor eax, eax
call fcn.0042f4f0
cmp byte [edi + 0x2b3], 0
je 0x4324cb
lea eax, [edi + 0x76e]
movzx eax, word [eax]
add eax, eax
lea eax, [eax + eax*4]
xor edx, edx
mov dl, byte [edi + 0x76d]
add eax, edx
cmp eax, 0xd
jbe 0x4324cb
push 0
xor ecx, ecx
mov dl, 1
xor eax, eax
call fcn.0042f4f0
test byte [edi + 0x2b3], 1
je 0x431e7d
push 0
mov ecx, 0x434040
mov dl, 1
xor eax, eax
call fcn.0042f4f0
test byte [edi + 0x2b3], 4
je 0x431e96
push 0
mov ecx, 0x43409c
mov dl, 1
xor eax, eax
call fcn.0042f4f0
test byte [edi + 0x2b3], 8
je 0x4324cb
push 0
mov ecx, 0x4340f8
mov dl, 1
xor eax, eax
call fcn.0042f4f0
jmp 0x4324cb
mov bl, 9
lea esi, [ebp - 0x64]
call fcn.00408ab0
mov dword [esi], eax
add esi, 4
dec bl
jne 0x431ebd
mov eax, dword [ebp - 0x64]
mov edx, 0x434148
call fcn.0040c328
mov eax, dword [ebp - 0x60]
mov edx, 0x434154
call fcn.0040c328
mov eax, dword [ebp - 0x5c]
mov edx, 0x434164
call fcn.0040c328
mov eax, dword [ebp - 0x58]
mov edx, 0x434174
call fcn.0040c328
mov eax, dword [ebp - 0x54]
mov edx, 0x434184
call fcn.0040c328
mov eax, dword [ebp - 0x50]
mov edx, 0x434194
call fcn.0040c328
mov eax, dword [ebp - 0x4c]
mov edx, 0x4341a4
call fcn.0040c328
mov eax, dword [ebp - 0x48]
mov edx, 0x4341b8
call fcn.0040c328
mov eax, dword [ebp - 0x44]
mov edx, 0x4341cc
call fcn.0040c328
mov al, byte [edi + 0x2ac]
dec eax
test al, al
jb 0x432264
inc eax
mov byte [ebp - 0x29], al
mov bl, 0
lea edx, [ebp - 0x11c]
xor eax, eax
mov al, bl
lea esi, [eax + eax*2]
xor eax, eax
mov al, byte [edi + esi*4 + 0x2af]
call fcn.0040628c
mov edx, dword [ebp - 0x11c]
mov eax, dword [ebp - 0x64]
call fcn.0040c328
lea ecx, [ebp - 0x120]
mov dl, byte [edi + esi*4 + 0x2af]
mov eax, edi
call fcn.00425540
mov edx, dword [ebp - 0x120]
mov eax, dword [ebp - 0x60]
call fcn.0040c328
test byte [edi + esi*4 + 0x2b0], 1
je 0x431fb9
lea eax, [ebp - 0x1c]
mov edx, 0x4341dc
call fcn.00403ba4
jmp 0x431fc6
lea eax, [ebp - 0x1c]
mov edx, 0x4341e8
call fcn.00403ba4
xor eax, eax
mov al, bl
lea eax, [eax + eax*2]
test byte [edi + eax*4 + 0x2b0], 2
je 0x431fe6
lea eax, [ebp - 0x1c]
mov edx, 0x4341f4
call fcn.00403db0
jmp 0x431ff3
lea eax, [ebp - 0x1c]
mov edx, 0x4341e8
call fcn.00403db0
xor eax, eax
mov al, bl
lea eax, [eax + eax*2]
test byte [edi + eax*4 + 0x2b0], 4
je 0x432013
lea eax, [ebp - 0x1c]
mov edx, 0x434200
call fcn.00403db0
jmp 0x432020
lea eax, [ebp - 0x1c]
mov edx, 0x4341e8
call fcn.00403db0
xor eax, eax
mov al, bl
lea eax, [eax + eax*2]
test byte [edi + eax*4 + 0x2b0], 8
je 0x432040
lea eax, [ebp - 0x1c]
mov edx, 0x43420c
call fcn.00403db0
jmp 0x43204d
lea eax, [ebp - 0x1c]
mov edx, 0x4341e8
call fcn.00403db0
xor eax, eax
mov al, bl
lea eax, [eax + eax*2]
test byte [edi + eax*4 + 0x2b0], 0x10
je 0x43206d
lea eax, [ebp - 0x1c]
mov edx, 0x434218
call fcn.00403db0
jmp 0x43207a
lea eax, [ebp - 0x1c]
mov edx, 0x4341e8
call fcn.00403db0
xor eax, eax
mov al, bl
lea eax, [eax + eax*2]
test byte [edi + eax*4 + 0x2b0], 0x20
je 0x43209a
lea eax, [ebp - 0x1c]
mov edx, 0x434224
call fcn.00403db0
jmp 0x4320a7
lea eax, [ebp - 0x1c]
mov edx, 0x4341e8
call fcn.00403db0
lea eax, [ebp - 0x124]
mov ecx, 0x432e28
mov edx, dword [ebp - 0x1c]
call fcn.00403df4
mov edx, dword [ebp - 0x124]
mov eax, dword [ebp - 0x5c]
call fcn.0040c328
lea edx, [ebp - 0x128]
xor eax, eax
mov al, byte [edi + esi*4 + 0x2b2]
call fcn.0040628c
mov edx, dword [ebp - 0x128]
mov eax, dword [ebp - 0x58]
call fcn.0040c328
lea edx, [ebp - 0x12c]
xor eax, eax
mov al, byte [edi + esi*4 + 0x2b3]
call fcn.0040628c
mov edx, dword [ebp - 0x12c]
mov eax, dword [ebp - 0x54]
call fcn.0040c328
lea edx, [ebp - 0x130]
xor eax, eax
mov al, byte [edi + esi*4 + 0x4b0]
call fcn.0040628c
mov edx, dword [ebp - 0x130]
mov eax, dword [ebp - 0x50]
call fcn.0040c328
lea eax, [edi + esi*4 + 0x2b4]
mov eax, dword [eax]
mov dword [ebp - 0x24], eax
lea eax, [edi + esi*4 + 0x2b8]
movzx eax, word [eax]
mov dword [ebp - 0x20], eax
lea edx, [ebp - 0x134]
lea eax, [ebp - 0x24]
call fcn.0040613c
mov edx, dword [ebp - 0x134]
mov eax, dword [ebp - 0x4c]
call fcn.0040c328
mov byte [ebp - 0x16], 0
mov byte [ebp - 0x15], 5
xor eax, eax
mov al, byte [ebp - 0x15]
xor edx, edx
mov dl, bl
lea edx, [edx + edx*2]
lea edx, [edi + edx*4]
cmp byte [edx + eax + 0x2b4], 0
je 0x43218c
mov al, byte [ebp - 0x15]
mov byte [ebp - 0x16], al
jmp 0x432195
dec byte [ebp - 0x15]
cmp byte [ebp - 0x15], 0xff
jne 0x43216b
lea eax, [ebp - 0x1c]
call fcn.00403b0c
mov al, byte [ebp - 0x16]
cmp al, 0
jb 0x4321e5
mov byte [ebp - 0x15], al
xor eax, eax
mov al, byte [ebp - 0x15]
xor edx, edx
mov dl, bl
lea edx, [edx + edx*2]
lea edx, [edi + edx*4]
movzx eax, byte [edx + eax + 0x2b4]
lea ecx, [ebp - 0x138]
mov edx, 2
call fcn.0040cc20
mov edx, dword [ebp - 0x138]
lea eax, [ebp - 0x1c]
call fcn.00403db0
dec byte [ebp - 0x15]
cmp byte [ebp - 0x15], 0xff
jne 0x4321a7
mov eax, dword [ebp - 0x48]
mov edx, dword [ebp - 0x1c]
call fcn.0040c328
mov edx, ebx
mov eax, edi
call fcn.00429214
cmp al, 1
je 0x43220a
mov edx, ebx
mov eax, edi
call fcn.00429214
cmp al, 2
jne 0x432219
lea eax, [ebp - 0x1c]
mov edx, 0x434230
call fcn.00403ba4
jmp 0x43224f
mov edx, ebx
mov eax, edi
call fcn.00429214
cmp al, 3
je 0x432233
mov edx, ebx
mov eax, edi
call fcn.00429214
cmp al, 4
jne 0x432242
lea eax, [ebp - 0x1c]
mov edx, 0x43423c
call fcn.00403ba4
jmp 0x43224f
lea eax, [ebp - 0x1c]
mov edx, 0x4341e8
call fcn.00403ba4
mov eax, dword [ebp - 0x44]
mov edx, dword [ebp - 0x1c]
call fcn.0040c328
inc ebx
dec byte [ebp - 0x29]
jne 0x431f55
mov byte [ebp - 0x15], 0xf8
lea esi, [ebp - 0x48]
mov byte [ebp - 0x16], 0
mov al, byte [edi + 0x2ac]
test al, al
jb 0x4322c9
inc eax
mov byte [ebp - 0x29], al
mov bl, 0
lea ecx, [ebp - 0x13c]
xor edx, edx
mov dl, bl
mov eax, dword [esi]
call fcn.0040c394
mov eax, dword [ebp - 0x13c]
call fcn.00403da8
xor edx, edx
mov dl, byte [ebp - 0x16]
cmp eax, edx
jle 0x4322c3
lea ecx, [ebp - 0x140]
xor edx, edx
mov dl, bl
mov eax, dword [esi]
call fcn.0040c394
mov eax, dword [ebp - 0x140]
call fcn.00403da8
mov byte [ebp - 0x16], al
inc ebx
dec byte [ebp - 0x29]
jne 0x43227f
mov al, byte [edi + 0x2ac]
test al, al
jb 0x43234a
inc eax
mov byte [ebp - 0x29], al
mov bl, 0
lea ecx, [ebp - 0x148]
xor edx, edx
mov dl, bl
mov eax, dword [esi]
call fcn.0040c394
mov eax, dword [ebp - 0x148]
call fcn.00403da8
xor edx, edx
mov dl, byte [ebp - 0x16]
sub edx, eax
inc edx
lea ecx, [ebp - 0x144]
mov eax, 0x432e28
call fcn.00406450
lea eax, [ebp - 0x144]
push eax
lea ecx, [ebp - 0x14c]
xor edx, edx
mov dl, bl
mov eax, dword [esi + 4]
call fcn.0040c394
mov edx, dword [ebp - 0x14c]
pop eax
call fcn.00403db0
mov ecx, dword [ebp - 0x144]
xor edx, edx
mov dl, bl
mov eax, dword [esi + 4]
call fcn.0040c3ec
inc ebx
dec byte [ebp - 0x29]
jne 0x4322d9
sub esi, 4
inc byte [ebp - 0x15]
jne 0x43226b
mov al, byte [edi + 0x2ac]
test al, al
jb 0x43248b
inc eax
mov byte [ebp - 0x29], al
mov bl, 0
lea ecx, [ebp - 0x150]
mov esi, ebx
and esi, 0xff
mov edx, esi
mov eax, dword [ebp - 0x64]
call fcn.0040c394
push dword [ebp - 0x150]
lea ecx, [ebp - 0x154]
mov edx, esi
mov eax, dword [ebp - 0x60]
call fcn.0040c394
push dword [ebp - 0x154]
lea ecx, [ebp - 0x158]
mov edx, esi
mov eax, dword [ebp - 0x5c]
call fcn.0040c394
push dword [ebp - 0x158]
lea ecx, [ebp - 0x15c]
mov edx, esi
mov eax, dword [ebp - 0x58]
call fcn.0040c394
push dword [ebp - 0x15c]
lea ecx, [ebp - 0x160]
mov edx, esi
mov eax, dword [ebp - 0x54]
call fcn.0040c394
push dword [ebp - 0x160]
lea ecx, [ebp - 0x164]
mov edx, esi
mov eax, dword [ebp - 0x50]
call fcn.0040c394
push dword [ebp - 0x164]
lea ecx, [ebp - 0x168]
mov edx, esi
mov eax, dword [ebp - 0x4c]
call fcn.0040c394
push dword [ebp - 0x168]
lea ecx, [ebp - 0x16c]
mov edx, esi
mov eax, dword [ebp - 0x48]
call fcn.0040c394
push dword [ebp - 0x16c]
lea eax, [ebp - 0x1c]
mov edx, 8
call fcn.00403e68
cmp byte [edi + 0xa6], 0
jne 0x432453
cmp byte [edi + 0xa7], 0
jne 0x432453
cmp byte [edi + 0xa9], 0
jne 0x432453
cmp byte [edi + 0xaa], 0
je 0x432473
lea ecx, [ebp - 0x170]
xor edx, edx
mov dl, bl
mov eax, dword [ebp - 0x44]
call fcn.0040c394
mov edx, dword [ebp - 0x170]
lea eax, [ebp - 0x1c]
call fcn.00403db0
push 0
mov ecx, dword [ebp - 0x1c]
mov dl, 1
xor eax, eax
call fcn.0042f4f0
inc ebx
dec byte [ebp - 0x29]
jne 0x43236a
push 0
xor ecx, ecx
xor edx, edx
xor eax, eax
call fcn.0042f4f0
push 0
mov ecx, 0x43424c
mov dl, 1
xor eax, eax
call fcn.0042f4f0
push 0
mov ecx, 0x4342a0
mov dl, 1
xor eax, eax
call fcn.0042f4f0
mov bl, 9
lea esi, [ebp - 0x64]
mov eax, dword [esi]
call fcn.0040a270
add esi, 4
dec bl
jne 0x4324bd
push 0
xor ecx, ecx
xor edx, edx
xor eax, eax
call fcn.0042f4f0
push 0
mov ecx, 0x4342e0
xor edx, edx
xor eax, eax
call fcn.0042f4f0
mov eax, dword [edi + 0x34]
push eax
push 0
mov ecx, 0x4342f0
mov dl, 1
mov eax, 0x434308
call fcn.0042f5ec
cmp byte [edi + 0x70b], 0
jne 0x43257b
cmp byte [edi + 0x2760], 0
jne 0x43257b
cmp byte [edi + 0x32], 0
je 0x43257b
cmp byte [edi + 0x31], 0
je 0x432534
push 0x43433c
push 0
mov ecx, 0x434350
mov dl, 1
xor eax, eax
call fcn.0042f5ec
jmp 0x432549
push 0x43436c
push 0
mov ecx, 0x434350
mov dl, 1
xor eax, eax
call fcn.0042f5ec
cmp byte [edi + 0x30], 0
je 0x432566
push 0x43437c
push 0
mov ecx, 0x43438c
mov dl, 1
xor eax, eax
call fcn.0042f5ec
jmp 0x43257b
push 0x4343a8
push 0
mov ecx, 0x43438c
mov dl, 1
xor eax, eax
call fcn.0042f5ec
cmp dword [edi + 0x6ec], 0
je 0x43259e
mov eax, dword [edi + 0x6ec]
push eax
push 0
mov ecx, 0x4343b8
mov dl, 1
mov eax, 0x4343d0
call fcn.0042f5ec
cmp byte [edi + 0x2758], 0
je 0x4325ed
push 0
mov ecx, 0x43440c
mov dl, 1
xor eax, eax
call fcn.0042f4f0
push 1
mov ecx, 0x434424
xor edx, edx
mov eax, 0x434430
call fcn.0042f4f0
cmp byte [0x446c70], 0
je 0x4325ed
mov al, byte [edi + 0x2759]
push eax
push 0
mov ecx, 0x43445c
mov dl, 1
mov eax, 0x43446c
call fcn.0042f870
lea edx, [ebp - 0x174]
lea eax, [edi + 0x96]
call fcn.0040e544
mov eax, dword [ebp - 0x174]
push eax
push 0
mov ecx, 0x4344a4
mov dl, 1
xor eax, eax
call fcn.0042f5ec
mov al, byte [0x446c70]
and al, byte [0x446c68]
je 0x43264e
cmp dword [edi + 0x704], 0
je 0x43264e
mov edx, 0x432a24
lea eax, [ebp - 0x178]
mov ecx, dword [edi + 0x704]
call fcn.00403df4
mov eax, dword [ebp - 0x178]
xor edx, edx
call fcn.00430548
mov al, byte [0x446b78]
dec eax
and eax, 0xff
cmp eax, dword [ebp - 0x10]
je 0x43268a
push 0
xor ecx, ecx
xor edx, edx
xor eax, eax
call fcn.0042f4f0
push 0
xor ecx, ecx
xor edx, edx
xor eax, eax
call fcn.0042f4f0
push 0
xor ecx, ecx
xor edx, edx
xor eax, eax
call fcn.0042f4f0
jmp 0x432727
cmp byte [0x446c70], 0
je 0x432727
push 0
xor ecx, ecx
xor edx, edx
xor eax, eax
call fcn.0042f4f0
mov eax, dword [0x4469f4]
push eax
push 0
mov ecx, 0x4344c0
xor edx, edx
xor eax, eax
call fcn.0042f5ec
mov eax, dword [0x44691c]
push eax
push 0
mov ecx, 0x4344d8
xor edx, edx
xor eax, eax
call fcn.0042f5ec
cmp byte [0x446c68], 0
je 0x4326f2
cmp byte [0x446bfc], 0
je 0x4326f2
push 0
mov ecx, 0x4344f4
xor edx, edx
xor eax, eax
call fcn.0042f4f0
cmp byte [0x446c68], 0
je 0x432727
cmp dword [0x446bd0], 0
je 0x432727
mov edx, 0x432a24
lea eax, [ebp - 0x17c]
mov ecx, dword [0x446bd0]
call fcn.00403df4
mov eax, dword [ebp - 0x17c]
xor edx, edx
call fcn.00430548
inc dword [ebp - 0x10]
add dword [ebp - 0x30], 4
dec dword [ebp - 0x28]
jne 0x430802
cmp byte [0x446c68], 0
je 0x432745
call fcn.0042fea8
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2c]
call fcn.00408cec
push 0x434518
push dword [0x446c6c]
push 0x434548
lea eax, [ebp - 0x180]
mov edx, 3
call fcn.00403e68
mov eax, dword [ebp - 0x180]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2c]
xor ecx, ecx
xor edx, edx
call fcn.004098e4
call fcn.00408ab0
mov dword [ebp - 0x14], eax
lea eax, [ebp - 0x184]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2c]
xor ecx, ecx
mov dl, 1
call fcn.004097a4
mov edx, dword [ebp - 0x184]
mov eax, dword [ebp - 0x14]
call fcn.00408bbc
xor ebx, ebx
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0x1c]
dec eax
test eax, eax
jb 0x43281e
inc eax
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x10], 0
mov eax, dword [ebp - 0x14]
mov edx, dword [ebp - 0x10]
call fcn.00408ad4
mov edx, eax
lea eax, [ebp - 0x188]
call fcn.00403ce8
mov eax, dword [ebp - 0x188]
call fcn.00403da8
cmp ebx, eax
jge 0x432816
mov eax, dword [ebp - 0x14]
mov edx, dword [ebp - 0x10]
call fcn.00408ad4
mov edx, eax
lea eax, [ebp - 0x18c]
call fcn.00403ce8
mov eax, dword [ebp - 0x18c]
call fcn.00403da8
mov ebx, eax
inc dword [ebp - 0x10]
dec dword [ebp - 0x28]
jne 0x4327ca
cmp ebx, 0x26
jge 0x432828
mov ebx, 0x26
lea eax, [ebp - 0x40]
call fcn.00409dc0
push 2
call sub.user32.dll_GetSystemMetrics
mov edx, eax
mov eax, ebx
shl eax, 3
add eax, 0x10
add edx, eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x18]
call fcn.0040bf30
mov eax, dword [ebp - 0x14]
mov ebx, dword [eax + 0x1c]
shl ebx, 4
add ebx, 0xd
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2c]
mov edx, ebx
call fcn.0040bb20
lea edx, [ebx + 0x5f]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x18]
call fcn.0040bf10
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x18]
call fcn.0040bb14
cmp eax, dword [ebp - 0x34]
jle 0x4328ba
mov eax, dword [ebp - 0x34]
add eax, eax
mov ecx, 3
cdq
idiv ecx
mov edx, eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2c]
call fcn.0040bb20
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2c]
call fcn.0040bb14
mov edx, eax
add edx, 0x5f
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x18]
call fcn.0040bf10
push 0xfffffffffffffff0
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2c]
mov eax, dword [eax + 0x1c]
push eax
call sub.user32.dll_GetWindowLongA
test eax, 0x200000
jne 0x4328f3
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x18]
call fcn.0040befc
push eax
push 2
call sub.user32.dll_GetSystemMetrics
pop edx
sub edx, eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x18]
call fcn.0040bf30
push ebp
call fcn.00430618
pop ecx
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x18]
call fcn.0040baec
mov edx, dword [ebp - 0x38]
sub edx, eax
sar edx, 1
jns 0x432911
adc edx, 0
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x18]
call fcn.0040ba98
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x18]
call fcn.0040bb14
mov edx, dword [ebp - 0x34]
sub edx, eax
sar edx, 1
jns 0x432933
adc edx, 0
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x18]
call fcn.0040bac8
mov eax, dword [ebp - 0x14]
call fcn.0040a270
cmp byte [0x446c68], 0
jne 0x43295a
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x18]
call fcn.0040b8ac
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x432997
lea eax, [ebp - 0x18c]
mov edx, 0x2c
call fcn.00403b30
lea eax, [ebp - 0xcc]
mov edx, 0x1a
call fcn.00403b30
lea eax, [ebp - 0x1c]
call fcn.00403b0c
ret