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

Disassembly:
push ebp
mov ebp, esp
push ecx
mov ecx, 0x30
push 0
push 0
dec ecx
jne 0x42e955
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 0x430ac8
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.0040c054
mov byte [0x443c70], al
cmp byte [0x443c70], 0
je 0x42e9a4
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x18]
mov edx, 0x430ae0
call fcn.0040b738
jmp 0x42e9b4
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x18]
mov edx, 0x430b00
call fcn.0040b738
mov eax, 0x443c6c
call fcn.00403b0c
cmp byte [0x443b78], 0
jne 0x42ea64
push 1
mov ecx, 0x430b14
xor edx, edx
xor eax, eax
call fcn.0042d774
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 [0x443c68], 0
je 0x42ea4b
cmp dword [0x443bd0], 0
je 0x42ea4b
lea eax, [ebp - 0x68]
mov ecx, dword [0x443bd0]
mov edx, 0x430b5c
call fcn.00403df4
mov eax, dword [ebp - 0x68]
xor edx, edx
call fcn.0042e7cc
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x24]
xor edx, edx
mov ecx, dword [eax]
call dword [ecx + 8]
mov byte [0x443c70], 1
jmp 0x43086f
xor eax, eax
mov al, byte [0x443b78]
dec eax
test eax, eax
jb 0x43086f
inc eax
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x10], 0
mov dword [ebp - 0x30], 0x443b7c
mov eax, dword [ebp - 0x30]
mov eax, dword [eax]
mov edi, eax
mov eax, dword [edi + 0x6f8]
push eax
push 1
mov ecx, 0x430b68
xor edx, edx
xor eax, eax
call fcn.0042d870
mov eax, dword [edi + 0x4c]
push eax
push 0
mov ecx, 0x430b7c
xor edx, edx
xor eax, eax
call fcn.0042d870
mov eax, dword [edi + 0x40]
push eax
push 0
mov ecx, 0x430b8c
xor edx, edx
xor eax, eax
call fcn.0042d870
cmp byte [0x443c70], 0
je 0x42eb0f
mov eax, dword [edi + 0x44]
push eax
push 0
mov ecx, 0x430ba4
xor edx, edx
mov eax, 0x430bb8
call fcn.0042d870
cmp byte [0x443c68], 0
je 0x42eafb
cmp byte [edi + 0x48], 0
jne 0x42eb0f
mov al, byte [edi + 0x48]
push eax
push 0
mov ecx, 0x430be4
xor edx, edx
xor eax, eax
call fcn.0042daf4
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, 0x430c00
xor edx, edx
mov eax, 0x430c14
call fcn.0042d870
mov bl, byte [edi + 0x2735]
test bl, bl
je 0x42eb61
lea edx, [ebp - 0x70]
mov eax, ebx
call fcn.0041e8ec
mov eax, dword [ebp - 0x70]
push eax
push 0
mov ecx, 0x430c64
xor edx, edx
mov eax, 0x430c78
call fcn.0042d870
push 0
mov ecx, 0x430ca8
xor edx, edx
xor eax, eax
call fcn.0042d774
cmp byte [edi + 0x70b], 0
je 0x42eb8f
push 1
mov ecx, 0x430cc0
xor edx, edx
mov eax, 0x430cd0
call fcn.0042d774
jmp 0x42ebde
mov al, byte [edi + 0x2734]
sub al, 1
jb 0x42eba1
je 0x42ebb6
sub al, 0xd
je 0x42ebcb
jmp 0x42ebde
push 1
mov ecx, 0x430d04
xor edx, edx
mov eax, 0x430d14
call fcn.0042d774
jmp 0x42ebde
push 1
mov ecx, 0x430d3c
xor edx, edx
mov eax, 0x430d4c
call fcn.0042d774
jmp 0x42ebde
push 1
mov ecx, 0x430d74
xor edx, edx
mov eax, 0x430d84
call fcn.0042d774
cmp byte [0x443c70], 0
je 0x42ed36
cmp byte [edi + 0x70b], 0
je 0x42ec1b
lea edx, [ebp - 0x74]
mov eax, dword [edi + 0x710]
call fcn.0041edcc
mov eax, dword [ebp - 0x74]
push eax
push 0
mov ecx, 0x430db8
xor edx, edx
xor eax, eax
call fcn.0042d870
jmp 0x42ecb8
cmp byte [edi + 0x2734], 1
jne 0x42ec49
cmp byte [edi + 0x61], 0
je 0x42ec49
lea edx, [ebp - 0x78]
mov al, byte [edi + 0x61]
call fcn.0041eb98
mov eax, dword [ebp - 0x78]
push eax
push 0
mov ecx, 0x430dd0
xor edx, edx
xor eax, eax
call fcn.0042d870
push 0
mov ecx, 0x430de8
xor edx, edx
mov eax, 0x430dfc
call fcn.0042d774
push 1
lea edx, [ebp - 0x80]
mov al, byte [edi + 0x60]
call fcn.0041ecf4
mov ecx, dword [ebp - 0x80]
lea eax, [ebp - 0x7c]
mov edx, 0x430e2c
call fcn.00403df4
mov ecx, dword [ebp - 0x7c]
xor edx, edx
xor eax, eax
call fcn.0042d774
cmp byte [edi + 0x70a], 0
je 0x42ecb8
push 0
mov ecx, 0x430e38
xor edx, edx
mov eax, 0x430e44
call fcn.0042d774
mov eax, dword [edi + 0x6fc]
push eax
push 1
mov ecx, 0x430e7c
xor edx, edx
xor eax, eax
call fcn.0042d870
cmp byte [edi + 0x70b], 0
je 0x42ed06
cmp byte [0x443c68], 0
je 0x42ecd6
cmp dword [edi + 0x271c], 0x200
je 0x42ed36
cmp dword [edi + 0x271c], 0x200
setne al
push eax
cmp dword [edi + 0x50], 0x200
setne al
push eax
push 0xffffffffffffffff
push 0
mov ecx, 0x430e90
xor edx, edx
mov eax, 0x430ea8
call fcn.0042dc54
jmp 0x42ed36
cmp byte [0x443c68], 0
je 0x42ed18
cmp dword [edi + 0x50], 0x200
je 0x42ed36
cmp dword [edi + 0x50], 0x200
setne al
push eax
push 0
mov eax, 0x430ea8
mov ecx, 0x430e90
xor edx, edx
call fcn.0042daf4
cmp byte [0x443c70], 0
je 0x42ed5c
push 0
xor ecx, ecx
xor edx, edx
xor eax, eax
call fcn.0042d774
push 0
mov ecx, 0x430ee0
xor edx, edx
xor eax, eax
call fcn.0042d774
cmp byte [0x443c70], 0
je 0x42f06c
cmp byte [edi + 0x70b], 0
je 0x42eed2
lea ecx, [ebp - 0x88]
mov dl, byte [edi + 0x2721]
mov al, byte [edi + 0x2720]
call fcn.0041e83c
push dword [ebp - 0x88]
push 0x430ef8
push 0x430f04
push 0x430f14
lea eax, [ebp - 0x84]
mov edx, 4
call fcn.00403e68
mov eax, dword [ebp - 0x84]
push eax
push 0
mov ecx, 0x430f20
mov dl, 1
xor eax, eax
call fcn.0042d870
push 1
mov eax, 0x430d84
mov ecx, 0x430d74
xor edx, edx
call fcn.0042d774
push 1
push 0x430ef8
lea edx, [ebp - 0x90]
xor eax, eax
mov al, byte [edi + 0x2720]
call fcn.0040628c
push dword [ebp - 0x90]
push 0x430f40
lea edx, [ebp - 0x94]
xor eax, eax
mov al, byte [edi + 0x2721]
call fcn.0040628c
push dword [ebp - 0x94]
push 0x430f50
lea eax, [ebp - 0x8c]
mov edx, 5
call fcn.00403e68
mov ecx, dword [ebp - 0x8c]
xor edx, edx
xor eax, eax
call fcn.0042d774
lea ecx, [ebp - 0x9c]
mov dl, byte [edi + 0x2723]
mov al, byte [edi + 0x2722]
call fcn.0041e83c
push dword [ebp - 0x9c]
push 0x430ef8
push 0x430f04
push 0x430f5c
lea edx, [ebp - 0xa0]
xor eax, eax
mov al, byte [edi + 0x2722]
call fcn.0040628c
push dword [ebp - 0xa0]
push 0x430f40
lea edx, [ebp - 0xa4]
xor eax, eax
mov al, byte [edi + 0x2723]
call fcn.0040628c
push dword [ebp - 0xa4]
push 0x430f50
lea eax, [ebp - 0x98]
mov edx, 8
call fcn.00403e68
mov eax, dword [ebp - 0x98]
push eax
push 0
mov ecx, 0x430f6c
mov dl, 1
xor eax, eax
call fcn.0042d870
jmp 0x42f044
cmp byte [edi + 0x2734], 0
jne 0x42efae
lea edx, [ebp - 0xac]
mov al, byte [edi + 0x6a]
call fcn.0041ea3c
push dword [ebp - 0xac]
push 0x430ef8
push 0x430f04
push 0x430f8c
lea edx, [ebp - 0xb0]
xor eax, eax
mov al, byte [edi + 0x6a]
call fcn.0040628c
push dword [ebp - 0xb0]
push 0x430f50
lea eax, [ebp - 0xa8]
mov edx, 6
call fcn.00403e68
mov eax, dword [ebp - 0xa8]
push eax
push 0
mov ecx, 0x430f20
mov dl, 1
xor eax, eax
call fcn.0042d870
lea edx, [ebp - 0xb8]
mov al, byte [edi + 0x69]
call fcn.0041ea3c
push dword [ebp - 0xb8]
push 0x430ef8
push 0x430f04
push 0x430f8c
lea edx, [ebp - 0xbc]
xor eax, eax
mov al, byte [edi + 0x69]
call fcn.0040628c
push dword [ebp - 0xbc]
push 0x430f50
lea eax, [ebp - 0xb4]
mov edx, 6
call fcn.00403e68
mov eax, dword [ebp - 0xb4]
push eax
push 0
mov ecx, 0x430f6c
mov dl, 1
xor eax, eax
call fcn.0042d870
jmp 0x42f044
cmp byte [edi + 0x62], 0
je 0x42eff9
lea edx, [ebp - 0xc4]
mov al, byte [edi + 0x62]
call fcn.0041eb38
push dword [ebp - 0xc4]
push 0x430ef8
push 0x430f04
lea eax, [ebp - 0xc0]
mov edx, 3
call fcn.00403e68
mov eax, dword [ebp - 0xc0]
push eax
push 0
mov ecx, 0x430f20
mov dl, 1
xor eax, eax
call fcn.0042d870
cmp byte [edi + 0x63], 0
je 0x42f044
lea edx, [ebp - 0xcc]
mov al, byte [edi + 0x63]
call fcn.0041eb38
push dword [ebp - 0xcc]
push 0x430ef8
push 0x430f04
lea eax, [ebp - 0xc8]
mov edx, 3
call fcn.00403e68
mov eax, dword [ebp - 0xc8]
push eax
push 0
mov ecx, 0x430f6c
mov dl, 1
xor eax, eax
call fcn.0042d870
movzx eax, word [edi + 0x6b6]
push eax
push 0
mov ecx, 0x430fa4
mov dl, 1
xor eax, eax
call fcn.0042d9b8
push 1
mov ecx, 0x430fc0
xor edx, edx
xor eax, eax
call fcn.0042d774
movzx eax, word [edi + 0x6b4]
push eax
push 0
mov ecx, 0x430fd0
mov dl, 1
xor eax, eax
call fcn.0042d9b8
push 1
mov ecx, 0x430fc0
xor edx, edx
xor eax, eax
call fcn.0042d774
cmp byte [0x443c70], 0
je 0x42f1f4
movzx eax, word [edi + 0x6ba]
push eax
push 0
mov ecx, 0x430fec
mov dl, 1
xor eax, eax
call fcn.0042d9b8
push 1
mov ecx, 0x430fc0
xor edx, edx
xor eax, eax
call fcn.0042d774
mov si, word [edi + 0x6b4]
mov bx, word [edi + 0x6ba]
cmp si, bx
jae 0x42f128
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 [0x431000]
fmul dword [0x431004]
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 0x42f172
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 [0x431000]
fmul dword [0x431004]
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, 0x431010
mov dl, 1
xor eax, eax
call fcn.0042d9b8
push 1
mov ecx, 0x431030
xor edx, edx
xor eax, eax
call fcn.0042d774
cmp byte [0x443c68], 0
je 0x42f1f4
movzx eax, word [edi + 0x6b8]
push eax
push 0
mov ecx, 0x43103c
mov dl, 1
xor eax, eax
call fcn.0042d9b8
push 1
mov ecx, 0x430fc0
xor edx, edx
xor eax, eax
call fcn.0042d774
movzx eax, word [edi + 0x6be]
push eax
push 0
mov ecx, 0x431058
mov dl, 1
xor eax, eax
call fcn.0042d9b8
push 1
mov ecx, 0x430fc0
xor edx, edx
xor eax, eax
call fcn.0042d774
xor eax, eax
mov al, byte [edi + 0x6b2]
push eax
push 0
mov ecx, 0x431074
mov dl, 1
mov eax, 0x431090
call fcn.0042d9b8
mov bl, byte [edi + 0x6b3]
test bl, bl
je 0x42f250
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, 0x4310c0
call fcn.00403df4
mov ecx, dword [ebp - 0xe0]
xor edx, edx
xor eax, eax
call fcn.0042d774
push 1
mov ecx, 0x4310cc
xor edx, edx
xor eax, eax
call fcn.0042d774
cmp byte [0x443c70], 0
je 0x42f6b1
cmp byte [edi + 0x70a], 0
jne 0x42f2ab
cmp word [edi + 0x272e], 0
je 0x42f2ab
movzx eax, word [edi + 0x272e]
push eax
push 0
mov ecx, 0x4310dc
mov dl, 1
mov eax, 0x4310f4
call fcn.0042d9b8
push 1
mov ecx, 0x431124
xor edx, edx
xor eax, eax
call fcn.0042d774
mov ebx, dword [edi + 0x64]
test ebx, ebx
je 0x42f2df
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, 0x431134
mov dl, 1
mov eax, 0x43114c
call fcn.0042d870
cmp byte [0x443c68], 0
je 0x42f2ee
cmp byte [edi + 0x73], 0
jne 0x42f30b
mov al, byte [edi + 0x72]
push eax
mov al, byte [edi + 0x73]
push eax
push 0xffffffffffffffff
push 0
mov ecx, 0x431174
mov dl, 1
mov eax, 0x431194
call fcn.0042dc54
cmp byte [edi + 0x70b], 0
jne 0x42f340
cmp byte [0x443c68], 0
je 0x42f323
cmp byte [edi + 0x75], 0
jne 0x42f340
mov al, byte [edi + 0x74]
push eax
mov al, byte [edi + 0x75]
push eax
push 0xffffffffffffffff
push 0
mov ecx, 0x4311c0
mov dl, 1
mov eax, 0x4311d8
call fcn.0042dc54
cmp byte [edi + 0x70a], 0
jne 0x42f395
cmp byte [0x443c68], 0
je 0x42f358
cmp byte [edi + 0x7a], 0
je 0x42f395
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, 0x431208
mov dl, 1
mov eax, 0x431230
call fcn.0042dc54
cmp byte [edi + 0x7a], 0
je 0x42f395
xor eax, eax
mov al, byte [edi + 0x7d]
push eax
push 0
mov ecx, 0x431258
mov dl, 1
xor eax, eax
call fcn.0042d9b8
cmp byte [edi + 0x70b], 0
jne 0x42f3ce
cmp byte [0x443c68], 0
je 0x42f3ad
cmp byte [edi + 0x77], 0
je 0x42f3ce
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, 0x431280
mov dl, 1
mov eax, 0x4312a4
call fcn.0042dc54
cmp byte [edi + 0x70b], 0
jne 0x42f4b8
cmp byte [edi + 0x70a], 0
je 0x42f419
cmp byte [0x443c68], 0
je 0x42f3f6
cmp byte [edi + 0x8c], 0
je 0x42f419
mov al, byte [edi + 0x8b]
push eax
mov al, byte [edi + 0x8c]
push eax
push 0xffffffffffffffff
push 0
mov ecx, 0x4312cc
mov dl, 1
mov eax, 0x4312ec
call fcn.0042dc54
cmp byte [edi + 0x2734], 0
jne 0x42f44e
cmp byte [0x443c68], 0
je 0x42f434
cmp byte [edi + 0x88], 0
je 0x42f44e
mov al, byte [edi + 0x88]
push eax
push 0
mov ecx, 0x43131c
mov dl, 1
mov eax, 0x431338
call fcn.0042daf4
cmp byte [edi + 0x8a], 0
jne 0x42f483
cmp byte [0x443c68], 0
je 0x42f469
cmp byte [edi + 0x89], 0
je 0x42f483
mov al, byte [edi + 0x89]
push eax
push 0
mov ecx, 0x431364
mov dl, 1
mov eax, 0x431384
call fcn.0042daf4
cmp byte [edi + 0x2734], 0
je 0x42f4b8
cmp byte [0x443c68], 0
je 0x42f49e
cmp byte [edi + 0x8a], 0
jne 0x42f4b8
mov al, byte [edi + 0x8a]
push eax
push 0
mov ecx, 0x4313ac
mov dl, 1
mov eax, 0x4313cc
call fcn.0042daf4
cmp byte [edi + 0x70a], 0
je 0x42f4ff
cmp byte [0x443c68], 0
je 0x42f4dc
cmp byte [edi + 0x2730], 0
je 0x42f4dc
cmp byte [edi + 0x2731], 0
jne 0x42f4ff
mov al, byte [edi + 0x2730]
push eax
mov al, byte [edi + 0x2731]
push eax
push 0xffffffffffffffff
push 0
mov ecx, 0x4313f4
mov dl, 1
mov eax, 0x431404
call fcn.0042dc54
cmp byte [edi + 0x70b], 0
je 0x42f579
mov al, byte [edi + 0x2724]
push eax
mov al, byte [edi + 0x2725]
push eax
push 0xffffffffffffffff
push 0
mov ecx, 0x43143c
mov dl, 1
xor eax, eax
call fcn.0042dc54
cmp dword [edi + 0x2728], 0
je 0x42f579
push 1
push 0x430f14
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 0x430f50
lea eax, [ebp - 0xec]
mov edx, 3
call fcn.00403e68
mov ecx, dword [ebp - 0xec]
xor edx, edx
xor eax, eax
call fcn.0042d774
push 0
xor ecx, ecx
xor edx, edx
xor eax, eax
call fcn.0042d774
push 0
mov ecx, 0x431460
xor edx, edx
xor eax, eax
call fcn.0042d774
cmp byte [edi + 0x70b], 0
jne 0x42f5bb
xor eax, eax
mov al, byte [edi + 0x2ac]
push eax
push 0
mov ecx, 0x431478
mov dl, 1
mov eax, 0x431494
call fcn.0042d9b8
mov al, byte [edi + 0x6ad]
test al, al
je 0x42f6a0
cmp byte [edi + 0x6ae], 0
je 0x42f615
push 0
mov ecx, 0x4314c8
mov dl, 1
xor eax, eax
call fcn.0042d774
mov al, byte [edi + 0x6ae]
push eax
push 1
mov ecx, 0x4314d8
xor edx, edx
mov eax, 0x4314ec
call fcn.0042daf4
xor eax, eax
mov al, byte [edi + 0x6ae]
push eax
push 1
mov ecx, 0x431518
xor edx, edx
xor eax, eax
call fcn.0042d9b8
cmp byte [edi + 0x6b1], 0
je 0x42f6b1
mov al, byte [edi + 0x6b1]
push eax
push 0
mov ecx, 0x431538
mov dl, 1
xor eax, eax
call fcn.0042daf4
push 1
mov ecx, 0x431518
xor edx, edx
xor eax, eax
call fcn.0042d774
cmp byte [edi + 0x6b1], 0xff
jne 0x42f664
push 1
mov ecx, 0x431550
xor edx, edx
xor eax, eax
call fcn.0042d774
jmp 0x42f6b1
push 1
lea edx, [ebp - 0xf8]
xor eax, eax
mov al, byte [edi + 0x6b1]
call fcn.0040628c
mov ecx, dword [ebp - 0xf8]
mov edx, 0x430e2c
lea eax, [ebp - 0xf4]
call fcn.00403df4
mov ecx, dword [ebp - 0xf4]
xor edx, edx
xor eax, eax
call fcn.0042d774
jmp 0x42f6b1
push eax
push 0
mov ecx, 0x431560
mov dl, 1
xor eax, eax
call fcn.0042daf4
mov bl, byte [edi + 0x92]
test bl, bl
je 0x42f6e7
cmp bl, byte [edi + 0x91]
je 0x42f6e7
lea edx, [ebp - 0xfc]
mov eax, ebx
call fcn.0042e798
mov eax, dword [ebp - 0xfc]
push eax
push 0
mov ecx, 0x431574
mov dl, 1
xor eax, eax
call fcn.0042d870
mov bl, byte [edi + 0x91]
test bl, bl
je 0x42f715
lea edx, [ebp - 0x100]
mov eax, ebx
call fcn.0042e798
mov eax, dword [ebp - 0x100]
push eax
push 0
mov ecx, 0x43159c
mov dl, 1
xor eax, eax
call fcn.0042d870
mov bl, byte [edi + 0x8f]
test bl, bl
je 0x42f743
lea edx, [ebp - 0x104]
mov eax, ebx
call fcn.0042e798
mov eax, dword [ebp - 0x104]
push eax
push 0
mov ecx, 0x4315c4
mov dl, 1
xor eax, eax
call fcn.0042d870
mov bl, byte [edi + 0x8e]
test bl, bl
je 0x42f774
lea edx, [ebp - 0x108]
mov eax, ebx
call fcn.0042e798
mov eax, dword [ebp - 0x108]
push eax
push 0
mov ecx, 0x4315e0
mov dl, 1
mov eax, 0x4315fc
call fcn.0042d870
cmp byte [edi + 0x6dd], 0
je 0x42f7d7
cmp byte [0x443c68], 0
je 0x42f7ab
cmp dword [edi + 0x6e0], 0
je 0x42f7d7
mov eax, dword [edi + 0x6e0]
push eax
push 0
mov ecx, 0x43162c
mov dl, 1
mov eax, 0x431648
call fcn.0042d9b8
jmp 0x42f7d7
cmp byte [0x443c70], 0
jne 0x42f7bd
cmp dword [edi + 0x6e0], 0
je 0x42f7d7
mov eax, dword [edi + 0x6e0]
push eax
push 0
mov ecx, 0x43162c
mov dl, 1
mov eax, 0x431648
call fcn.0042d9b8
cmp byte [edi + 0x70b], 0
jne 0x42f7e9
cmp byte [edi + 0x6d0], 0
je 0x42f800
mov eax, dword [edi + 0x6d4]
push eax
push 0
mov ecx, 0x431674
mov dl, 1
xor eax, eax
call fcn.0042d9b8
cmp byte [edi + 0x70b], 0
jne 0x42f812
cmp byte [edi + 0x6c0], 0
je 0x42f860
cmp byte [edi + 0x70b], 0
jne 0x42f824
cmp dword [edi + 0x6c4], 0
je 0x42f848
mov eax, dword [edi + 0x6cc]
xor edx, edx
div dword [edi + 0x6c4]
push eax
push 0
mov ecx, 0x431698
mov dl, 1
mov eax, 0x4316b4
call fcn.0042d9b8
jmp 0x42f860
push 0x4316e0
push 0
mov ecx, 0x431698
mov dl, 1
mov eax, 0x4316b4
call fcn.0042d870
cmp byte [0x443c70], 0
je 0x42f8dd
cmp byte [edi + 0x70a], 0
jne 0x42f8dd
cmp byte [0x443c68], 0
je 0x42f881
cmp byte [edi + 0x7e], 0
je 0x42f8dd
mov al, byte [edi + 0x7e]
push eax
mov al, byte [edi + 0x7f]
push eax
push 0xffffffffffffffff
push 0
mov ecx, 0x4316f8
mov dl, 1
mov eax, 0x431714
call fcn.0042dc54
cmp byte [edi + 0x7f], 0
je 0x42f8dd
cmp byte [edi + 0x80], 0
je 0x42f8c8
xor eax, eax
mov al, byte [edi + 0x80]
push eax
push 0
mov ecx, 0x431748
mov dl, 1
xor eax, eax
call fcn.0042d9b8
jmp 0x42f8dd
push 0x431770
push 0
mov ecx, 0x431748
mov dl, 1
xor eax, eax
call fcn.0042d870
cmp byte [edi + 0x70b], 0
jne 0x42f91b
cmp byte [0x443c70], 0
je 0x42f91b
cmp byte [0x443c68], 0
je 0x42f901
cmp byte [edi + 0x81], 0
jne 0x42f91b
mov al, byte [edi + 0x81]
push eax
push 0
mov ecx, 0x431794
mov dl, 1
mov eax, 0x4317bc
call fcn.0042daf4
cmp byte [edi + 0xa6], 0
je 0x42f94b
push 0x4317e4
push 0
mov ecx, 0x4317f8
mov dl, 1
xor eax, eax
call fcn.0042d870
push 0
mov ecx, 0x43180c
mov dl, 1
xor eax, eax
call fcn.0042d774
jmp 0x42f9bb
push 0x431834
push 0
mov ecx, 0x4317f8
mov dl, 1
xor eax, eax
call fcn.0042d870
cmp byte [edi + 0xa9], 0
je 0x42f989
push 1
mov ecx, 0x431848
xor edx, edx
xor eax, eax
call fcn.0042d774
push 0
mov ecx, 0x431860
mov dl, 1
xor eax, eax
call fcn.0042d774
cmp byte [edi + 0xa7], 0
je 0x42f9a2
push 1
mov ecx, 0x431898
xor edx, edx
xor eax, eax
call fcn.0042d774
cmp byte [edi + 0xaa], 0
je 0x42f9bb
push 1
mov ecx, 0x4318b4
xor edx, edx
xor eax, eax
call fcn.0042d774
cmp byte [0x443c70], 0
je 0x4306b3
push 0
xor ecx, ecx
xor edx, edx
xor eax, eax
call fcn.0042d774
push 0
mov ecx, 0x4318d0
xor edx, edx
xor eax, eax
call fcn.0042d774
cmp byte [0x443c68], 0
je 0x42f9f4
cmp byte [edi + 0x6c], 0
je 0x42fa65
cmp byte [edi + 0x70b], 0
je 0x42fa13
mov al, byte [edi + 0x6b]
push eax
push 0
mov ecx, 0x4318e4
mov dl, 1
xor eax, eax
call fcn.0042daf4
jmp 0x42fa2d
mov al, byte [edi + 0x6b]
push eax
mov al, byte [edi + 0x6c]
push eax
push 0xffffffffffffffff
push 0
mov ecx, 0x4318e4
mov dl, 1
xor eax, eax
call fcn.0042dc54
cmp byte [edi + 0x6c], 0
je 0x42fa65
cmp byte [edi + 0x6d], 0
je 0x42fa50
push 0x431908
push 0
mov ecx, 0x43191c
mov dl, 1
xor eax, eax
call fcn.0042d870
jmp 0x42fa65
push 0x431938
push 0
mov ecx, 0x43191c
mov dl, 1
xor eax, eax
call fcn.0042d870
cmp byte [edi + 0x70b], 0
jne 0x42fa94
cmp byte [0x443c68], 0
je 0x42fa7d
cmp byte [edi + 0x6e], 0
jne 0x42fa94
mov al, byte [edi + 0x6e]
push eax
push 0
mov ecx, 0x431948
mov dl, 1
mov eax, 0x431968
call fcn.0042daf4
cmp byte [0x443c68], 0
je 0x42faa3
cmp byte [edi + 0x70], 0
je 0x42faba
mov al, byte [edi + 0x70]
push eax
push 0
mov ecx, 0x4319a4
mov dl, 1
mov eax, 0x4319c8
call fcn.0042daf4
cmp byte [edi + 0x6b], 0
je 0x42fb03
cmp dword [edi + 0x6e4], 0
je 0x42fb03
cmp dword [edi + 0x6e4], 0x1fe
je 0x42faee
mov eax, dword [edi + 0x6e4]
push eax
push 0
mov ecx, 0x431a0c
mov dl, 1
xor eax, eax
call fcn.0042d9b8
jmp 0x42fb03
push 0x431a38
push 0
mov ecx, 0x431a0c
mov dl, 1
xor eax, eax
call fcn.0042d870
cmp byte [edi + 0x70b], 0
jne 0x42fb94
cmp byte [0x443c68], 0
jne 0x42fb33
mov al, byte [edi + 0x85]
push eax
push 0
mov ecx, 0x431a48
mov dl, 1
mov eax, 0x431a6c
call fcn.0042daf4
cmp byte [edi + 0x86], 0
je 0x42fb6e
cmp byte [0x443c68], 0
je 0x42fb4e
cmp byte [edi + 0x87], 0
je 0x42fb6e
mov al, byte [edi + 0x86]
push eax
mov al, byte [edi + 0x87]
push eax
push 0xffffffffffffffff
push 0
mov ecx, 0x431a94
mov dl, 1
xor eax, eax
call fcn.0042dc54
cmp byte [0x443c68], 0
je 0x42fb7d
cmp byte [edi + 0x71], 0
je 0x42fb94
mov al, byte [edi + 0x71]
push eax
push 0
mov ecx, 0x431abc
mov dl, 1
mov eax, 0x431ad8
call fcn.0042daf4
push 0
xor ecx, ecx
xor edx, edx
xor eax, eax
call fcn.0042d774
push 0
mov ecx, 0x431b10
xor edx, edx
xor eax, eax
call fcn.0042d774
cmp byte [edi + 0x70b], 0
je 0x42fff0
xor eax, eax
mov al, byte [edi + 0x2ad]
push eax
push 0
mov ecx, 0x431b24
mov dl, 1
xor eax, eax
call fcn.0042d9b8
lea eax, [edi + 0x2ae]
movzx eax, word [eax]
push eax
push 0
mov ecx, 0x431b40
mov dl, 1
xor eax, eax
call fcn.0042d9b8
xor eax, eax
mov al, byte [edi + 0x2b0]
push eax
push 0
mov ecx, 0x431b60
mov dl, 1
xor eax, eax
call fcn.0042d9b8
xor eax, eax
mov al, byte [edi + 0x2b1]
push eax
push 0
mov ecx, 0x431b78
mov dl, 1
xor eax, eax
call fcn.0042d9b8
xor eax, eax
mov al, byte [edi + 0x2b2]
push eax
push 0
mov ecx, 0x431b9c
mov dl, 1
xor eax, eax
call fcn.0042d9b8
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 0x42fc72
xor eax, eax
mov al, byte [edi + 0x2b3]
push eax
push 0
mov ecx, 0x431bb4
mov dl, 1
xor eax, eax
call fcn.0042d9b8
lea eax, [edi + 0x2cd]
mov eax, dword [eax]
push eax
push 0
mov ecx, 0x431be8
mov dl, 1
xor eax, eax
call fcn.0042d9b8
lea eax, [edi + 0x2dd]
mov eax, dword [eax]
push eax
push 0
mov ecx, 0x431c00
mov dl, 1
xor eax, eax
call fcn.0042d9b8
lea eax, [edi + 0x2ed]
mov eax, dword [eax]
push eax
push 0
mov ecx, 0x431c1c
mov dl, 1
xor eax, eax
call fcn.0042d9b8
lea eax, [edi + 0x2fd]
mov eax, dword [eax]
push eax
push 0
mov ecx, 0x431c38
mov dl, 1
xor eax, eax
call fcn.0042d9b8
lea eax, [edi + 0x30d]
mov eax, dword [eax]
push eax
push 0
mov ecx, 0x431c54
mov dl, 1
xor eax, eax
call fcn.0042d9b8
lea eax, [edi + 0x31d]
mov eax, dword [eax]
push eax
push 0
mov ecx, 0x431c74
mov dl, 1
xor eax, eax
call fcn.0042d9b8
lea eax, [edi + 0x32d]
mov eax, dword [eax]
push eax
push 0
mov ecx, 0x431c8c
mov dl, 1
xor eax, eax
call fcn.0042d9b8
lea eax, [edi + 0x33d]
mov eax, dword [eax]
push eax
push 0
mov ecx, 0x431ca4
mov dl, 1
xor eax, eax
call fcn.0042d9b8
lea eax, [edi + 0x34d]
mov eax, dword [eax]
push eax
push 0
mov ecx, 0x431cc0
mov dl, 1
xor eax, eax
call fcn.0042d9b8
lea eax, [edi + 0x35d]
mov eax, dword [eax]
push eax
push 0
mov ecx, 0x431ce8
mov dl, 1
xor eax, eax
call fcn.0042d9b8
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 0x42fe30
lea eax, [edi + 0x36d]
mov eax, dword [eax]
push eax
push 0
mov ecx, 0x431d18
mov dl, 1
xor eax, eax
call fcn.0042d9b8
lea eax, [edi + 0x371]
mov eax, dword [eax]
push eax
push 0
mov ecx, 0x431d44
mov dl, 1
xor eax, eax
call fcn.0042d9b8
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 0x42fe2a
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 - 0x110]
mov eax, esi
inc eax
call fcn.0040628c
mov ecx, dword [ebp - 0x110]
lea eax, [ebp - 0x10c]
mov edx, 0x431d70
call fcn.00403df4
mov ecx, dword [ebp - 0x10c]
mov dl, 1
xor eax, eax
call fcn.0042d9b8
inc ebx
cmp bl, 8
jne 0x42fdc1
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 0x42feb1
lea eax, [edi + 0x385]
mov eax, dword [eax]
push eax
push 0
mov ecx, 0x431d8c
mov dl, 1
xor eax, eax
call fcn.0042d9b8
lea eax, [edi + 0x389]
mov eax, dword [eax]
push eax
push 0
mov ecx, 0x431dc8
mov dl, 1
xor eax, eax
call fcn.0042d9b8
lea eax, [edi + 0x38d]
mov eax, dword [eax]
push eax
push 0
mov ecx, 0x431e04
mov dl, 1
xor eax, eax
call fcn.0042d9b8
lea eax, [edi + 0x391]
mov eax, dword [eax]
push eax
push 0
mov ecx, 0x431e3c
mov dl, 1
xor eax, eax
call fcn.0042d9b8
cmp byte [edi + 0x2ad], 0
je 0x42ff61
push 0
xor ecx, ecx
mov dl, 1
xor eax, eax
call fcn.0042d774
test byte [edi + 0x2ad], 1
je 0x42fee4
push 0
mov ecx, 0x431e74
mov dl, 1
xor eax, eax
call fcn.0042d774
test byte [edi + 0x2ad], 2
je 0x42fefd
push 0
mov ecx, 0x431ebc
mov dl, 1
xor eax, eax
call fcn.0042d774
test byte [edi + 0x2ad], 4
je 0x42ff16
push 0
mov ecx, 0x431ef8
mov dl, 1
xor eax, eax
call fcn.0042d774
test byte [edi + 0x2ad], 8
je 0x42ff2f
push 0
mov ecx, 0x431f44
mov dl, 1
xor eax, eax
call fcn.0042d774
test byte [edi + 0x2ad], 0x10
je 0x42ff48
push 0
mov ecx, 0x431f7c
mov dl, 1
xor eax, eax
call fcn.0042d774
test byte [edi + 0x2ad], 0x20
je 0x42ff61
push 0
mov ecx, 0x431fb4
mov dl, 1
xor eax, eax
call fcn.0042d774
cmp byte [edi + 0x2b3], 0
je 0x430603
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 0x430603
push 0
xor ecx, ecx
mov dl, 1
xor eax, eax
call fcn.0042d774
test byte [edi + 0x2b3], 1
je 0x42ffb5
push 0
mov ecx, 0x432000
mov dl, 1
xor eax, eax
call fcn.0042d774
test byte [edi + 0x2b3], 4
je 0x42ffce
push 0
mov ecx, 0x43205c
mov dl, 1
xor eax, eax
call fcn.0042d774
test byte [edi + 0x2b3], 8
je 0x430603
push 0
mov ecx, 0x4320b8
mov dl, 1
xor eax, eax
call fcn.0042d774
jmp 0x430603
mov bl, 9
lea esi, [ebp - 0x64]
call fcn.00408ab0
mov dword [esi], eax
add esi, 4
dec bl
jne 0x42fff5
mov eax, dword [ebp - 0x64]
mov edx, 0x432108
call fcn.0040c328
mov eax, dword [ebp - 0x60]
mov edx, 0x432114
call fcn.0040c328
mov eax, dword [ebp - 0x5c]
mov edx, 0x432124
call fcn.0040c328
mov eax, dword [ebp - 0x58]
mov edx, 0x432134
call fcn.0040c328
mov eax, dword [ebp - 0x54]
mov edx, 0x432144
call fcn.0040c328
mov eax, dword [ebp - 0x50]
mov edx, 0x432154
call fcn.0040c328
mov eax, dword [ebp - 0x4c]
mov edx, 0x432164
call fcn.0040c328
mov eax, dword [ebp - 0x48]
mov edx, 0x432178
call fcn.0040c328
mov eax, dword [ebp - 0x44]
mov edx, 0x43218c
call fcn.0040c328
mov al, byte [edi + 0x2ac]
dec eax
test al, al
jb 0x43039c
inc eax
mov byte [ebp - 0x29], al
mov bl, 0
lea edx, [ebp - 0x114]
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 - 0x114]
mov eax, dword [ebp - 0x64]
call fcn.0040c328
lea ecx, [ebp - 0x118]
mov dl, byte [edi + esi*4 + 0x2af]
mov eax, edi
call fcn.00423c14
mov edx, dword [ebp - 0x118]
mov eax, dword [ebp - 0x60]
call fcn.0040c328
test byte [edi + esi*4 + 0x2b0], 1
je 0x4300f1
lea eax, [ebp - 0x1c]
mov edx, 0x43219c
call fcn.00403ba4
jmp 0x4300fe
lea eax, [ebp - 0x1c]
mov edx, 0x4321a8
call fcn.00403ba4
xor eax, eax
mov al, bl
lea eax, [eax + eax*2]
test byte [edi + eax*4 + 0x2b0], 2
je 0x43011e
lea eax, [ebp - 0x1c]
mov edx, 0x4321b4
call fcn.00403db0
jmp 0x43012b
lea eax, [ebp - 0x1c]
mov edx, 0x4321a8
call fcn.00403db0
xor eax, eax
mov al, bl
lea eax, [eax + eax*2]
test byte [edi + eax*4 + 0x2b0], 4
je 0x43014b
lea eax, [ebp - 0x1c]
mov edx, 0x4321c0
call fcn.00403db0
jmp 0x430158
lea eax, [ebp - 0x1c]
mov edx, 0x4321a8
call fcn.00403db0
xor eax, eax
mov al, bl
lea eax, [eax + eax*2]
test byte [edi + eax*4 + 0x2b0], 8
je 0x430178
lea eax, [ebp - 0x1c]
mov edx, 0x4321cc
call fcn.00403db0
jmp 0x430185
lea eax, [ebp - 0x1c]
mov edx, 0x4321a8
call fcn.00403db0
xor eax, eax
mov al, bl
lea eax, [eax + eax*2]
test byte [edi + eax*4 + 0x2b0], 0x10
je 0x4301a5
lea eax, [ebp - 0x1c]
mov edx, 0x4321d8
call fcn.00403db0
jmp 0x4301b2
lea eax, [ebp - 0x1c]
mov edx, 0x4321a8
call fcn.00403db0
xor eax, eax
mov al, bl
lea eax, [eax + eax*2]
test byte [edi + eax*4 + 0x2b0], 0x20
je 0x4301d2
lea eax, [ebp - 0x1c]
mov edx, 0x4321e4
call fcn.00403db0
jmp 0x4301df
lea eax, [ebp - 0x1c]
mov edx, 0x4321a8
call fcn.00403db0
lea eax, [ebp - 0x11c]
mov ecx, 0x430ef8
mov edx, dword [ebp - 0x1c]
call fcn.00403df4
mov edx, dword [ebp - 0x11c]
mov eax, dword [ebp - 0x5c]
call fcn.0040c328
lea edx, [ebp - 0x120]
xor eax, eax
mov al, byte [edi + esi*4 + 0x2b2]
call fcn.0040628c
mov edx, dword [ebp - 0x120]
mov eax, dword [ebp - 0x58]
call fcn.0040c328
lea edx, [ebp - 0x124]
xor eax, eax
mov al, byte [edi + esi*4 + 0x2b3]
call fcn.0040628c
mov edx, dword [ebp - 0x124]
mov eax, dword [ebp - 0x54]
call fcn.0040c328
lea edx, [ebp - 0x128]
xor eax, eax
mov al, byte [edi + esi*4 + 0x4b0]
call fcn.0040628c
mov edx, dword [ebp - 0x128]
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 - 0x12c]
lea eax, [ebp - 0x24]
call fcn.0040613c
mov edx, dword [ebp - 0x12c]
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 0x4302c4
mov al, byte [ebp - 0x15]
mov byte [ebp - 0x16], al
jmp 0x4302cd
dec byte [ebp - 0x15]
cmp byte [ebp - 0x15], 0xff
jne 0x4302a3
lea eax, [ebp - 0x1c]
call fcn.00403b0c
mov al, byte [ebp - 0x16]
cmp al, 0
jb 0x43031d
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 - 0x130]
mov edx, 2
call fcn.0040cc20
mov edx, dword [ebp - 0x130]
lea eax, [ebp - 0x1c]
call fcn.00403db0
dec byte [ebp - 0x15]
cmp byte [ebp - 0x15], 0xff
jne 0x4302df
mov eax, dword [ebp - 0x48]
mov edx, dword [ebp - 0x1c]
call fcn.0040c328
mov edx, ebx
mov eax, edi
call fcn.00427498
cmp al, 1
je 0x430342
mov edx, ebx
mov eax, edi
call fcn.00427498
cmp al, 2
jne 0x430351
lea eax, [ebp - 0x1c]
mov edx, 0x4321f0
call fcn.00403ba4
jmp 0x430387
mov edx, ebx
mov eax, edi
call fcn.00427498
cmp al, 3
je 0x43036b
mov edx, ebx
mov eax, edi
call fcn.00427498
cmp al, 4
jne 0x43037a
lea eax, [ebp - 0x1c]
mov edx, 0x4321fc
call fcn.00403ba4
jmp 0x430387
lea eax, [ebp - 0x1c]
mov edx, 0x4321a8
call fcn.00403ba4
mov eax, dword [ebp - 0x44]
mov edx, dword [ebp - 0x1c]
call fcn.0040c328
inc ebx
dec byte [ebp - 0x29]
jne 0x43008d
mov byte [ebp - 0x15], 0xf8
lea esi, [ebp - 0x48]
mov byte [ebp - 0x16], 0
mov al, byte [edi + 0x2ac]
test al, al
jb 0x430401
inc eax
mov byte [ebp - 0x29], al
mov bl, 0
lea ecx, [ebp - 0x134]
xor edx, edx
mov dl, bl
mov eax, dword [esi]
call fcn.0040c394
mov eax, dword [ebp - 0x134]
call fcn.00403da8
xor edx, edx
mov dl, byte [ebp - 0x16]
cmp eax, edx
jle 0x4303fb
lea ecx, [ebp - 0x138]
xor edx, edx
mov dl, bl
mov eax, dword [esi]
call fcn.0040c394
mov eax, dword [ebp - 0x138]
call fcn.00403da8
mov byte [ebp - 0x16], al
inc ebx
dec byte [ebp - 0x29]
jne 0x4303b7
mov al, byte [edi + 0x2ac]
test al, al
jb 0x430482
inc eax
mov byte [ebp - 0x29], al
mov bl, 0
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
xor edx, edx
mov dl, byte [ebp - 0x16]
sub edx, eax
inc edx
lea ecx, [ebp - 0x13c]
mov eax, 0x430ef8
call fcn.00406450
lea eax, [ebp - 0x13c]
push eax
lea ecx, [ebp - 0x144]
xor edx, edx
mov dl, bl
mov eax, dword [esi + 4]
call fcn.0040c394
mov edx, dword [ebp - 0x144]
pop eax
call fcn.00403db0
mov ecx, dword [ebp - 0x13c]
xor edx, edx
mov dl, bl
mov eax, dword [esi + 4]
call fcn.0040c3ec
inc ebx
dec byte [ebp - 0x29]
jne 0x430411
sub esi, 4
inc byte [ebp - 0x15]
jne 0x4303a3
mov al, byte [edi + 0x2ac]
test al, al
jb 0x4305c3
inc eax
mov byte [ebp - 0x29], al
mov bl, 0
lea ecx, [ebp - 0x148]
mov esi, ebx
and esi, 0xff
mov edx, esi
mov eax, dword [ebp - 0x64]
call fcn.0040c394
push dword [ebp - 0x148]
lea ecx, [ebp - 0x14c]
mov edx, esi
mov eax, dword [ebp - 0x60]
call fcn.0040c394
push dword [ebp - 0x14c]
lea ecx, [ebp - 0x150]
mov edx, esi
mov eax, dword [ebp - 0x5c]
call fcn.0040c394
push dword [ebp - 0x150]
lea ecx, [ebp - 0x154]
mov edx, esi
mov eax, dword [ebp - 0x58]
call fcn.0040c394
push dword [ebp - 0x154]
lea ecx, [ebp - 0x158]
mov edx, esi
mov eax, dword [ebp - 0x54]
call fcn.0040c394
push dword [ebp - 0x158]
lea ecx, [ebp - 0x15c]
mov edx, esi
mov eax, dword [ebp - 0x50]
call fcn.0040c394
push dword [ebp - 0x15c]
lea ecx, [ebp - 0x160]
mov edx, esi
mov eax, dword [ebp - 0x4c]
call fcn.0040c394
push dword [ebp - 0x160]
lea ecx, [ebp - 0x164]
mov edx, esi
mov eax, dword [ebp - 0x48]
call fcn.0040c394
push dword [ebp - 0x164]
lea eax, [ebp - 0x1c]
mov edx, 8
call fcn.00403e68
cmp byte [edi + 0xa6], 0
jne 0x43058b
cmp byte [edi + 0xa7], 0
jne 0x43058b
cmp byte [edi + 0xa9], 0
jne 0x43058b
cmp byte [edi + 0xaa], 0
je 0x4305ab
lea ecx, [ebp - 0x168]
xor edx, edx
mov dl, bl
mov eax, dword [ebp - 0x44]
call fcn.0040c394
mov edx, dword [ebp - 0x168]
lea eax, [ebp - 0x1c]
call fcn.00403db0
push 0
mov ecx, dword [ebp - 0x1c]
mov dl, 1
xor eax, eax
call fcn.0042d774
inc ebx
dec byte [ebp - 0x29]
jne 0x4304a2
push 0
xor ecx, ecx
xor edx, edx
xor eax, eax
call fcn.0042d774
push 0
mov ecx, 0x43220c
mov dl, 1
xor eax, eax
call fcn.0042d774
push 0
mov ecx, 0x432260
mov dl, 1
xor eax, eax
call fcn.0042d774
mov bl, 9
lea esi, [ebp - 0x64]
mov eax, dword [esi]
call fcn.0040a270
add esi, 4
dec bl
jne 0x4305f5
push 0
xor ecx, ecx
xor edx, edx
xor eax, eax
call fcn.0042d774
push 0
mov ecx, 0x4322a0
xor edx, edx
xor eax, eax
call fcn.0042d774
mov eax, dword [edi + 0x34]
push eax
push 0
mov ecx, 0x4322b0
mov dl, 1
mov eax, 0x4322c8
call fcn.0042d870
cmp byte [edi + 0x70b], 0
jne 0x4306b3
cmp byte [edi + 0x2734], 0
jne 0x4306b3
cmp byte [edi + 0x32], 0
je 0x4306b3
cmp byte [edi + 0x31], 0
je 0x43066c
push 0x4322fc
push 0
mov ecx, 0x432310
mov dl, 1
xor eax, eax
call fcn.0042d870
jmp 0x430681
push 0x43232c
push 0
mov ecx, 0x432310
mov dl, 1
xor eax, eax
call fcn.0042d870
cmp byte [edi + 0x30], 0
je 0x43069e
push 0x43233c
push 0
mov ecx, 0x43234c
mov dl, 1
xor eax, eax
call fcn.0042d870
jmp 0x4306b3
push 0x432368
push 0
mov ecx, 0x43234c
mov dl, 1
xor eax, eax
call fcn.0042d870
cmp dword [edi + 0x6ec], 0
je 0x4306d6
mov eax, dword [edi + 0x6ec]
push eax
push 0
mov ecx, 0x432378
mov dl, 1
mov eax, 0x432390
call fcn.0042d870
cmp byte [edi + 0x272c], 0
je 0x430725
push 0
mov ecx, 0x4323cc
mov dl, 1
xor eax, eax
call fcn.0042d774
push 1
mov ecx, 0x4323e4
xor edx, edx
mov eax, 0x4323f0
call fcn.0042d774
cmp byte [0x443c70], 0
je 0x430725
mov al, byte [edi + 0x272d]
push eax
push 0
mov ecx, 0x43241c
mov dl, 1
mov eax, 0x43242c
call fcn.0042daf4
lea edx, [ebp - 0x16c]
lea eax, [edi + 0x96]
call fcn.0040e544
mov eax, dword [ebp - 0x16c]
push eax
push 0
mov ecx, 0x432464
mov dl, 1
xor eax, eax
call fcn.0042d870
mov al, byte [0x443c70]
and al, byte [0x443c68]
je 0x430786
cmp dword [edi + 0x704], 0
je 0x430786
mov edx, 0x430b5c
lea eax, [ebp - 0x170]
mov ecx, dword [edi + 0x704]
call fcn.00403df4
mov eax, dword [ebp - 0x170]
xor edx, edx
call fcn.0042e7cc
mov al, byte [0x443b78]
dec eax
and eax, 0xff
cmp eax, dword [ebp - 0x10]
je 0x4307c2
push 0
xor ecx, ecx
xor edx, edx
xor eax, eax
call fcn.0042d774
push 0
xor ecx, ecx
xor edx, edx
xor eax, eax
call fcn.0042d774
push 0
xor ecx, ecx
xor edx, edx
xor eax, eax
call fcn.0042d774
jmp 0x43085f
cmp byte [0x443c70], 0
je 0x43085f
push 0
xor ecx, ecx
xor edx, edx
xor eax, eax
call fcn.0042d774
mov eax, dword [0x4439f4]
push eax
push 0
mov ecx, 0x432480
xor edx, edx
xor eax, eax
call fcn.0042d870
mov eax, dword [0x44391c]
push eax
push 0
mov ecx, 0x432498
xor edx, edx
xor eax, eax
call fcn.0042d870
cmp byte [0x443c68], 0
je 0x43082a
cmp byte [0x443bfc], 0
je 0x43082a
push 0
mov ecx, 0x4324b4
xor edx, edx
xor eax, eax
call fcn.0042d774
cmp byte [0x443c68], 0
je 0x43085f
cmp dword [0x443bd0], 0
je 0x43085f
mov edx, 0x430b5c
lea eax, [ebp - 0x174]
mov ecx, dword [0x443bd0]
call fcn.00403df4
mov eax, dword [ebp - 0x174]
xor edx, edx
call fcn.0042e7cc
inc dword [ebp - 0x10]
add dword [ebp - 0x30], 4
dec dword [ebp - 0x28]
jne 0x42ea86
cmp byte [0x443c68], 0
je 0x43087d
call fcn.0042e12c
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2c]
call fcn.00408cec
push 0x4324d8
push dword [0x443c6c]
push 0x432508
lea eax, [ebp - 0x178]
mov edx, 3
call fcn.00403e68
mov eax, dword [ebp - 0x178]
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 - 0x17c]
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 - 0x17c]
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 0x430956
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 - 0x180]
call fcn.00403ce8
mov eax, dword [ebp - 0x180]
call fcn.00403da8
cmp ebx, eax
jge 0x43094e
mov eax, dword [ebp - 0x14]
mov edx, dword [ebp - 0x10]
call fcn.00408ad4
mov edx, eax
lea eax, [ebp - 0x184]
call fcn.00403ce8
mov eax, dword [ebp - 0x184]
call fcn.00403da8
mov ebx, eax
inc dword [ebp - 0x10]
dec dword [ebp - 0x28]
jne 0x430902
cmp ebx, 0x26
jge 0x430960
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 0x4309f2
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 0x430a2b
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.0042e89c
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 0x430a49
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 0x430a6b
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 [0x443c68], 0
jne 0x430a92
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 0x430acf
lea eax, [ebp - 0x184]
mov edx, 0x2a
call fcn.00403b30
lea eax, [ebp - 0xcc]
mov edx, 0x1a
call fcn.00403b30
lea eax, [ebp - 0x1c]
call fcn.00403b0c
ret