Function at 0x42fa2c
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 0x42fa35
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 0x431bd5
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 0x42fa84
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x18]
mov edx, 0x431bec
call fcn.0040b738
jmp 0x42fa94
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x18]
mov edx, 0x431c0c
call fcn.0040b738
mov eax, 0x446c6c
call fcn.00403b0c
cmp byte [0x446b78], 0
jne 0x42fb44
push 1
mov ecx, 0x431c20
xor edx, edx
xor eax, eax
call fcn.0042e854
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 0x42fb2b
cmp dword [0x446bd0], 0
je 0x42fb2b
lea eax, [ebp - 0x68]
mov ecx, dword [0x446bd0]
mov edx, 0x431c68
call fcn.00403df4
mov eax, dword [ebp - 0x68]
xor edx, edx
call fcn.0042f8ac
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 0x43197c
xor eax, eax
mov al, byte [0x446b78]
dec eax
test eax, eax
jb 0x43197c
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, 0x431c74
xor edx, edx
xor eax, eax
call fcn.0042e950
mov eax, dword [edi + 0x4c]
push eax
push 0
mov ecx, 0x431c88
xor edx, edx
xor eax, eax
call fcn.0042e950
mov eax, dword [edi + 0x40]
push eax
push 0
mov ecx, 0x431c98
xor edx, edx
xor eax, eax
call fcn.0042e950
cmp byte [0x446c70], 0
je 0x42fbef
mov eax, dword [edi + 0x44]
push eax
push 0
mov ecx, 0x431cb0
xor edx, edx
mov eax, 0x431cc4
call fcn.0042e950
cmp byte [0x446c68], 0
je 0x42fbdb
cmp byte [edi + 0x48], 0
jne 0x42fbef
mov al, byte [edi + 0x48]
push eax
push 0
mov ecx, 0x431cf0
xor edx, edx
xor eax, eax
call fcn.0042ebd4
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, 0x431d0c
xor edx, edx
mov eax, 0x431d20
call fcn.0042e950
mov bl, byte [edi + 0x2765]
test bl, bl
je 0x42fc41
lea edx, [ebp - 0x70]
mov eax, ebx
call fcn.0041eb94
mov eax, dword [ebp - 0x70]
push eax
push 0
mov ecx, 0x431d70
xor edx, edx
mov eax, 0x431d84
call fcn.0042e950
push 0
mov ecx, 0x431db4
xor edx, edx
xor eax, eax
call fcn.0042e854
cmp byte [edi + 0x70b], 0
je 0x42fc6f
push 1
mov ecx, 0x431dcc
xor edx, edx
mov eax, 0x431ddc
call fcn.0042e854
jmp 0x42fcbe
mov al, byte [edi + 0x2764]
sub al, 1
jb 0x42fc81
je 0x42fc96
sub al, 0xd
je 0x42fcab
jmp 0x42fcbe
push 1
mov ecx, 0x431e10
xor edx, edx
mov eax, 0x431e20
call fcn.0042e854
jmp 0x42fcbe
push 1
mov ecx, 0x431e48
xor edx, edx
mov eax, 0x431e58
call fcn.0042e854
jmp 0x42fcbe
push 1
mov ecx, 0x431e80
xor edx, edx
mov eax, 0x431e90
call fcn.0042e854
cmp byte [0x446c70], 0
je 0x42fe4c
cmp byte [edi + 0x70b], 0
je 0x42fcfb
lea edx, [ebp - 0x74]
mov eax, dword [edi + 0x710]
call fcn.0041f074
mov eax, dword [ebp - 0x74]
push eax
push 0
mov ecx, 0x431ec4
xor edx, edx
xor eax, eax
call fcn.0042e950
jmp 0x42fd98
cmp byte [edi + 0x2764], 1
jne 0x42fd29
cmp byte [edi + 0x61], 0
je 0x42fd29
lea edx, [ebp - 0x78]
mov al, byte [edi + 0x61]
call fcn.0041ee40
mov eax, dword [ebp - 0x78]
push eax
push 0
mov ecx, 0x431edc
xor edx, edx
xor eax, eax
call fcn.0042e950
push 0
mov ecx, 0x431ef4
xor edx, edx
mov eax, 0x431f08
call fcn.0042e854
push 1
lea edx, [ebp - 0x80]
mov al, byte [edi + 0x60]
call fcn.0041ef9c
mov ecx, dword [ebp - 0x80]
lea eax, [ebp - 0x7c]
mov edx, 0x431f38
call fcn.00403df4
mov ecx, dword [ebp - 0x7c]
xor edx, edx
xor eax, eax
call fcn.0042e854
cmp byte [edi + 0x70a], 0
je 0x42fd98
push 0
mov ecx, 0x431f44
xor edx, edx
mov eax, 0x431f50
call fcn.0042e854
mov eax, dword [edi + 0x6fc]
push eax
push 1
mov ecx, 0x431f88
xor edx, edx
xor eax, eax
call fcn.0042e950
cmp byte [edi + 0x70b], 0
je 0x42fe1b
cmp byte [edi + 0x272d], 0
je 0x42fdd6
xor eax, eax
mov al, byte [edi + 0x272d]
push eax
push 0
mov ecx, 0x431f9c
xor edx, edx
mov eax, 0x431fc0
call fcn.0042ea98
push 1
mov ecx, 0x431ff8
xor edx, edx
xor eax, eax
call fcn.0042e854
cmp byte [0x446c68], 0
je 0x42fdeb
cmp dword [edi + 0x271c], 0x200
je 0x42fe4c
cmp dword [edi + 0x271c], 0x200
setne al
push eax
cmp dword [edi + 0x50], 0x200
setne al
push eax
push 0xffffffffffffffff
push 0
mov ecx, 0x432004
xor edx, edx
mov eax, 0x43201c
call fcn.0042ed34
jmp 0x42fe4c
cmp byte [0x446c68], 0
je 0x42fe2d
cmp dword [edi + 0x50], 0x200
je 0x42fe4c
cmp dword [edi + 0x50], 0x200
setne al
push eax
push 0
push 0x43201c
mov ecx, 0x432004
xor edx, edx
pop eax
call fcn.0042ebd4
cmp byte [0x446c70], 0
je 0x42fe72
push 0
xor ecx, ecx
xor edx, edx
xor eax, eax
call fcn.0042e854
push 0
mov ecx, 0x432054
xor edx, edx
xor eax, eax
call fcn.0042e854
cmp byte [0x446c70], 0
je 0x4301aa
cmp byte [edi + 0x70b], 0
je 0x42ffe8
lea ecx, [ebp - 0x88]
mov dl, byte [edi + 0x2721]
mov al, byte [edi + 0x2720]
call fcn.0041eae4
push dword [ebp - 0x88]
push 0x43206c
push 0x432078
push 0x432088
lea eax, [ebp - 0x84]
mov edx, 4
call fcn.00403e68
mov eax, dword [ebp - 0x84]
push eax
push 0
mov ecx, 0x432094
mov dl, 1
xor eax, eax
call fcn.0042e950
push 1
mov eax, 0x431e90
mov ecx, 0x431e80
xor edx, edx
call fcn.0042e854
push 1
push 0x43206c
lea edx, [ebp - 0x90]
xor eax, eax
mov al, byte [edi + 0x2720]
call fcn.0040628c
push dword [ebp - 0x90]
push 0x4320b4
lea edx, [ebp - 0x94]
xor eax, eax
mov al, byte [edi + 0x2721]
call fcn.0040628c
push dword [ebp - 0x94]
push 0x4320c4
lea eax, [ebp - 0x8c]
mov edx, 5
call fcn.00403e68
mov ecx, dword [ebp - 0x8c]
xor edx, edx
xor eax, eax
call fcn.0042e854
lea ecx, [ebp - 0x9c]
mov dl, byte [edi + 0x2723]
mov al, byte [edi + 0x2722]
call fcn.0041eae4
push dword [ebp - 0x9c]
push 0x43206c
push 0x432078
push 0x4320d0
lea edx, [ebp - 0xa0]
xor eax, eax
mov al, byte [edi + 0x2722]
call fcn.0040628c
push dword [ebp - 0xa0]
push 0x4320b4
lea edx, [ebp - 0xa4]
xor eax, eax
mov al, byte [edi + 0x2723]
call fcn.0040628c
push dword [ebp - 0xa4]
push 0x4320c4
lea eax, [ebp - 0x98]
mov edx, 8
call fcn.00403e68
mov eax, dword [ebp - 0x98]
push eax
push 0
mov ecx, 0x4320e0
mov dl, 1
xor eax, eax
call fcn.0042e950
jmp 0x43015a
cmp byte [edi + 0x2764], 0
jne 0x4300c4
lea edx, [ebp - 0xac]
mov al, byte [edi + 0x6a]
call fcn.0041ece4
push dword [ebp - 0xac]
push 0x43206c
push 0x432078
push 0x432100
lea edx, [ebp - 0xb0]
xor eax, eax
mov al, byte [edi + 0x6a]
call fcn.0040628c
push dword [ebp - 0xb0]
push 0x4320c4
lea eax, [ebp - 0xa8]
mov edx, 6
call fcn.00403e68
mov eax, dword [ebp - 0xa8]
push eax
push 0
mov ecx, 0x432094
mov dl, 1
xor eax, eax
call fcn.0042e950
lea edx, [ebp - 0xb8]
mov al, byte [edi + 0x69]
call fcn.0041ece4
push dword [ebp - 0xb8]
push 0x43206c
push 0x432078
push 0x432100
lea edx, [ebp - 0xbc]
xor eax, eax
mov al, byte [edi + 0x69]
call fcn.0040628c
push dword [ebp - 0xbc]
push 0x4320c4
lea eax, [ebp - 0xb4]
mov edx, 6
call fcn.00403e68
mov eax, dword [ebp - 0xb4]
push eax
push 0
mov ecx, 0x4320e0
mov dl, 1
xor eax, eax
call fcn.0042e950
jmp 0x43015a
cmp byte [edi + 0x62], 0
je 0x43010f
lea edx, [ebp - 0xc4]
mov al, byte [edi + 0x62]
call fcn.0041ede0
push dword [ebp - 0xc4]
push 0x43206c
push 0x432078
lea eax, [ebp - 0xc0]
mov edx, 3
call fcn.00403e68
mov eax, dword [ebp - 0xc0]
push eax
push 0
mov ecx, 0x432094
mov dl, 1
xor eax, eax
call fcn.0042e950
cmp byte [edi + 0x63], 0
je 0x43015a
lea edx, [ebp - 0xcc]
mov al, byte [edi + 0x63]
call fcn.0041ede0
push dword [ebp - 0xcc]
push 0x43206c
push 0x432078
lea eax, [ebp - 0xc8]
mov edx, 3
call fcn.00403e68
mov eax, dword [ebp - 0xc8]
push eax
push 0
mov ecx, 0x4320e0
mov dl, 1
xor eax, eax
call fcn.0042e950
movzx eax, word [edi + 0x6b6]
push eax
push 0
mov ecx, 0x432118
mov dl, 1
xor eax, eax
call fcn.0042ea98
push 1
mov ecx, 0x432134
xor edx, edx
xor eax, eax
call fcn.0042e854
movzx eax, word [edi + 0x6b8]
push eax
push 0
mov ecx, 0x432144
mov dl, 1
xor eax, eax
call fcn.0042ea98
push 1
mov ecx, 0x432134
xor edx, edx
xor eax, eax
call fcn.0042e854
movzx eax, word [edi + 0x6b4]
push eax
push 0
mov ecx, 0x432160
mov dl, 1
xor eax, eax
call fcn.0042ea98
push 1
mov ecx, 0x432134
xor edx, edx
xor eax, eax
call fcn.0042e854
cmp byte [0x446c70], 0
je 0x430301
movzx eax, word [edi + 0x6be]
push eax
push 0
mov ecx, 0x43217c
mov dl, 1
xor eax, eax
call fcn.0042ea98
push 1
mov ecx, 0x432134
xor edx, edx
xor eax, eax
call fcn.0042e854
movzx eax, word [edi + 0x6ba]
push eax
push 0
mov ecx, 0x432198
mov dl, 1
xor eax, eax
call fcn.0042ea98
push 1
mov ecx, 0x432134
xor edx, edx
xor eax, eax
call fcn.0042e854
mov si, word [edi + 0x6b4]
mov bx, word [edi + 0x6ba]
cmp si, bx
jae 0x43028e
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 [0x4321ac]
fmul dword [0x4321b0]
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 0x4302d8
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 [0x4321ac]
fmul dword [0x4321b0]
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, 0x4321bc
mov dl, 1
xor eax, eax
call fcn.0042ea98
push 1
mov ecx, 0x4321dc
xor edx, edx
xor eax, eax
call fcn.0042e854
xor eax, eax
mov al, byte [edi + 0x6b2]
push eax
push 0
mov ecx, 0x4321e8
mov dl, 1
mov eax, 0x432204
call fcn.0042ea98
mov bl, byte [edi + 0x6b3]
test bl, bl
je 0x43035d
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, 0x432234
call fcn.00403df4
mov ecx, dword [ebp - 0xe0]
xor edx, edx
xor eax, eax
call fcn.0042e854
push 1
mov ecx, 0x432240
xor edx, edx
xor eax, eax
call fcn.0042e854
cmp byte [0x446c70], 0
je 0x4307be
cmp byte [edi + 0x70a], 0
jne 0x4303b8
cmp word [edi + 0x275e], 0
je 0x4303b8
movzx eax, word [edi + 0x275e]
push eax
push 0
mov ecx, 0x432250
mov dl, 1
mov eax, 0x432268
call fcn.0042ea98
push 1
mov ecx, 0x432298
xor edx, edx
xor eax, eax
call fcn.0042e854
mov ebx, dword [edi + 0x64]
test ebx, ebx
je 0x4303ec
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, 0x4322a8
mov dl, 1
mov eax, 0x4322c0
call fcn.0042e950
cmp byte [0x446c68], 0
je 0x4303fb
cmp byte [edi + 0x73], 0
jne 0x430418
mov al, byte [edi + 0x72]
push eax
mov al, byte [edi + 0x73]
push eax
push 0xffffffffffffffff
push 0
mov ecx, 0x4322e8
mov dl, 1
mov eax, 0x432308
call fcn.0042ed34
cmp byte [edi + 0x70b], 0
jne 0x43044d
cmp byte [0x446c68], 0
je 0x430430
cmp byte [edi + 0x75], 0
jne 0x43044d
mov al, byte [edi + 0x74]
push eax
mov al, byte [edi + 0x75]
push eax
push 0xffffffffffffffff
push 0
mov ecx, 0x432334
mov dl, 1
mov eax, 0x43234c
call fcn.0042ed34
cmp byte [edi + 0x70a], 0
jne 0x4304a2
cmp byte [0x446c68], 0
je 0x430465
cmp byte [edi + 0x7a], 0
je 0x4304a2
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, 0x43237c
mov dl, 1
mov eax, 0x4323a4
call fcn.0042ed34
cmp byte [edi + 0x7a], 0
je 0x4304a2
xor eax, eax
mov al, byte [edi + 0x7d]
push eax
push 0
mov ecx, 0x4323cc
mov dl, 1
xor eax, eax
call fcn.0042ea98
cmp byte [edi + 0x70b], 0
jne 0x4304db
cmp byte [0x446c68], 0
je 0x4304ba
cmp byte [edi + 0x77], 0
je 0x4304db
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, 0x4323f4
mov dl, 1
mov eax, 0x432418
call fcn.0042ed34
cmp byte [edi + 0x70b], 0
jne 0x4305c5
cmp byte [edi + 0x70a], 0
je 0x430526
cmp byte [0x446c68], 0
je 0x430503
cmp byte [edi + 0x8c], 0
je 0x430526
mov al, byte [edi + 0x8b]
push eax
mov al, byte [edi + 0x8c]
push eax
push 0xffffffffffffffff
push 0
mov ecx, 0x432440
mov dl, 1
mov eax, 0x432460
call fcn.0042ed34
cmp byte [edi + 0x2764], 0
jne 0x43055b
cmp byte [0x446c68], 0
je 0x430541
cmp byte [edi + 0x88], 0
je 0x43055b
mov al, byte [edi + 0x88]
push eax
push 0
mov ecx, 0x432490
mov dl, 1
mov eax, 0x4324ac
call fcn.0042ebd4
cmp byte [edi + 0x8a], 0
jne 0x430590
cmp byte [0x446c68], 0
je 0x430576
cmp byte [edi + 0x89], 0
je 0x430590
mov al, byte [edi + 0x89]
push eax
push 0
mov ecx, 0x4324d8
mov dl, 1
mov eax, 0x4324f8
call fcn.0042ebd4
cmp byte [edi + 0x2764], 0
je 0x4305c5
cmp byte [0x446c68], 0
je 0x4305ab
cmp byte [edi + 0x8a], 0
jne 0x4305c5
mov al, byte [edi + 0x8a]
push eax
push 0
mov ecx, 0x432520
mov dl, 1
mov eax, 0x432540
call fcn.0042ebd4
cmp byte [edi + 0x70a], 0
je 0x43060c
cmp byte [0x446c68], 0
je 0x4305e9
cmp byte [edi + 0x2760], 0
je 0x4305e9
cmp byte [edi + 0x2761], 0
jne 0x43060c
mov al, byte [edi + 0x2760]
push eax
mov al, byte [edi + 0x2761]
push eax
push 0xffffffffffffffff
push 0
mov ecx, 0x432568
mov dl, 1
mov eax, 0x432578
call fcn.0042ed34
cmp byte [edi + 0x70b], 0
je 0x430686
mov al, byte [edi + 0x2724]
push eax
mov al, byte [edi + 0x2725]
push eax
push 0xffffffffffffffff
push 0
mov ecx, 0x4325b0
mov dl, 1
xor eax, eax
call fcn.0042ed34
cmp dword [edi + 0x2728], 0
je 0x430686
push 1
push 0x432088
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 0x4320c4
lea eax, [ebp - 0xec]
mov edx, 3
call fcn.00403e68
mov ecx, dword [ebp - 0xec]
xor edx, edx
xor eax, eax
call fcn.0042e854
push 0
xor ecx, ecx
xor edx, edx
xor eax, eax
call fcn.0042e854
push 0
mov ecx, 0x4325d4
xor edx, edx
xor eax, eax
call fcn.0042e854
cmp byte [edi + 0x70b], 0
jne 0x4306c8
xor eax, eax
mov al, byte [edi + 0x2ac]
push eax
push 0
mov ecx, 0x4325ec
mov dl, 1
mov eax, 0x432608
call fcn.0042ea98
mov al, byte [edi + 0x6ad]
test al, al
je 0x4307ad
cmp byte [edi + 0x6ae], 0
je 0x430722
push 0
mov ecx, 0x43263c
mov dl, 1
xor eax, eax
call fcn.0042e854
mov al, byte [edi + 0x6ae]
push eax
push 1
mov ecx, 0x43264c
xor edx, edx
mov eax, 0x432660
call fcn.0042ebd4
xor eax, eax
mov al, byte [edi + 0x6ae]
push eax
push 1
mov ecx, 0x43268c
xor edx, edx
xor eax, eax
call fcn.0042ea98
cmp byte [edi + 0x6b1], 0
je 0x4307be
mov al, byte [edi + 0x6b1]
push eax
push 0
mov ecx, 0x4326ac
mov dl, 1
xor eax, eax
call fcn.0042ebd4
push 1
mov ecx, 0x43268c
xor edx, edx
xor eax, eax
call fcn.0042e854
cmp byte [edi + 0x6b1], 0xff
jne 0x430771
push 1
mov ecx, 0x4326c4
xor edx, edx
xor eax, eax
call fcn.0042e854
jmp 0x4307be
push 1
lea edx, [ebp - 0xf8]
xor eax, eax
mov al, byte [edi + 0x6b1]
call fcn.0040628c
mov ecx, dword [ebp - 0xf8]
mov edx, 0x431f38
lea eax, [ebp - 0xf4]
call fcn.00403df4
mov ecx, dword [ebp - 0xf4]
xor edx, edx
xor eax, eax
call fcn.0042e854
jmp 0x4307be
push eax
push 0
mov ecx, 0x4326d4
mov dl, 1
xor eax, eax
call fcn.0042ebd4
mov bl, byte [edi + 0x92]
test bl, bl
je 0x4307f4
cmp bl, byte [edi + 0x91]
je 0x4307f4
lea edx, [ebp - 0xfc]
mov eax, ebx
call fcn.0042f878
mov eax, dword [ebp - 0xfc]
push eax
push 0
mov ecx, 0x4326e8
mov dl, 1
xor eax, eax
call fcn.0042e950
mov bl, byte [edi + 0x91]
test bl, bl
je 0x430822
lea edx, [ebp - 0x100]
mov eax, ebx
call fcn.0042f878
mov eax, dword [ebp - 0x100]
push eax
push 0
mov ecx, 0x432710
mov dl, 1
xor eax, eax
call fcn.0042e950
mov bl, byte [edi + 0x8f]
test bl, bl
je 0x430850
lea edx, [ebp - 0x104]
mov eax, ebx
call fcn.0042f878
mov eax, dword [ebp - 0x104]
push eax
push 0
mov ecx, 0x432738
mov dl, 1
xor eax, eax
call fcn.0042e950
mov bl, byte [edi + 0x8e]
test bl, bl
je 0x430881
lea edx, [ebp - 0x108]
mov eax, ebx
call fcn.0042f878
mov eax, dword [ebp - 0x108]
push eax
push 0
mov ecx, 0x432754
mov dl, 1
mov eax, 0x432770
call fcn.0042e950
cmp byte [edi + 0x6dd], 0
je 0x4308e4
cmp byte [0x446c68], 0
je 0x4308b8
cmp dword [edi + 0x6e0], 0
je 0x4308e4
mov eax, dword [edi + 0x6e0]
push eax
push 0
mov ecx, 0x4327a0
mov dl, 1
mov eax, 0x4327bc
call fcn.0042ea98
jmp 0x4308e4
cmp byte [0x446c70], 0
jne 0x4308ca
cmp dword [edi + 0x6e0], 0
je 0x4308e4
mov eax, dword [edi + 0x6e0]
push eax
push 0
mov ecx, 0x4327a0
mov dl, 1
mov eax, 0x4327bc
call fcn.0042ea98
cmp byte [edi + 0x70b], 0
jne 0x4308f6
cmp byte [edi + 0x6d0], 0
je 0x43090d
mov eax, dword [edi + 0x6d4]
push eax
push 0
mov ecx, 0x4327e8
mov dl, 1
xor eax, eax
call fcn.0042ea98
cmp byte [edi + 0x70b], 0
jne 0x43091f
cmp byte [edi + 0x6c0], 0
je 0x43096d
cmp byte [edi + 0x70b], 0
jne 0x430931
cmp dword [edi + 0x6c4], 0
je 0x430955
mov eax, dword [edi + 0x6cc]
xor edx, edx
div dword [edi + 0x6c4]
push eax
push 0
mov ecx, 0x43280c
mov dl, 1
mov eax, 0x432828
call fcn.0042ea98
jmp 0x43096d
push 0x432854
push 0
mov ecx, 0x43280c
mov dl, 1
mov eax, 0x432828
call fcn.0042e950
cmp byte [0x446c70], 0
je 0x4309ea
cmp byte [edi + 0x70a], 0
jne 0x4309ea
cmp byte [0x446c68], 0
je 0x43098e
cmp byte [edi + 0x7e], 0
je 0x4309ea
mov al, byte [edi + 0x7e]
push eax
mov al, byte [edi + 0x7f]
push eax
push 0xffffffffffffffff
push 0
mov ecx, 0x43286c
mov dl, 1
mov eax, 0x432888
call fcn.0042ed34
cmp byte [edi + 0x7f], 0
je 0x4309ea
cmp byte [edi + 0x80], 0
je 0x4309d5
xor eax, eax
mov al, byte [edi + 0x80]
push eax
push 0
mov ecx, 0x4328bc
mov dl, 1
xor eax, eax
call fcn.0042ea98
jmp 0x4309ea
push 0x4328e4
push 0
mov ecx, 0x4328bc
mov dl, 1
xor eax, eax
call fcn.0042e950
cmp byte [edi + 0x70b], 0
jne 0x430a28
cmp byte [0x446c70], 0
je 0x430a28
cmp byte [0x446c68], 0
je 0x430a0e
cmp byte [edi + 0x81], 0
jne 0x430a28
mov al, byte [edi + 0x81]
push eax
push 0
mov ecx, 0x432908
mov dl, 1
mov eax, 0x432930
call fcn.0042ebd4
cmp byte [edi + 0xa6], 0
je 0x430a58
push 0x432958
push 0
mov ecx, 0x43296c
mov dl, 1
xor eax, eax
call fcn.0042e950
push 0
mov ecx, 0x432980
mov dl, 1
xor eax, eax
call fcn.0042e854
jmp 0x430ac8
push 0x4329a8
push 0
mov ecx, 0x43296c
mov dl, 1
xor eax, eax
call fcn.0042e950
cmp byte [edi + 0xa9], 0
je 0x430a96
push 1
mov ecx, 0x4329bc
xor edx, edx
xor eax, eax
call fcn.0042e854
push 0
mov ecx, 0x4329d4
mov dl, 1
xor eax, eax
call fcn.0042e854
cmp byte [edi + 0xa7], 0
je 0x430aaf
push 1
mov ecx, 0x432a0c
xor edx, edx
xor eax, eax
call fcn.0042e854
cmp byte [edi + 0xaa], 0
je 0x430ac8
push 1
mov ecx, 0x432a28
xor edx, edx
xor eax, eax
call fcn.0042e854
cmp byte [0x446c70], 0
je 0x4317c0
push 0
xor ecx, ecx
xor edx, edx
xor eax, eax
call fcn.0042e854
push 0
mov ecx, 0x432a44
xor edx, edx
xor eax, eax
call fcn.0042e854
cmp byte [0x446c68], 0
je 0x430b01
cmp byte [edi + 0x6c], 0
je 0x430b72
cmp byte [edi + 0x70b], 0
je 0x430b20
mov al, byte [edi + 0x6b]
push eax
push 0
mov ecx, 0x432a58
mov dl, 1
xor eax, eax
call fcn.0042ebd4
jmp 0x430b3a
mov al, byte [edi + 0x6b]
push eax
mov al, byte [edi + 0x6c]
push eax
push 0xffffffffffffffff
push 0
mov ecx, 0x432a58
mov dl, 1
xor eax, eax
call fcn.0042ed34
cmp byte [edi + 0x6c], 0
je 0x430b72
cmp byte [edi + 0x6d], 0
je 0x430b5d
push 0x432a7c
push 0
mov ecx, 0x432a90
mov dl, 1
xor eax, eax
call fcn.0042e950
jmp 0x430b72
push 0x432aac
push 0
mov ecx, 0x432a90
mov dl, 1
xor eax, eax
call fcn.0042e950
cmp byte [edi + 0x70b], 0
jne 0x430ba1
cmp byte [0x446c68], 0
je 0x430b8a
cmp byte [edi + 0x6e], 0
jne 0x430ba1
mov al, byte [edi + 0x6e]
push eax
push 0
mov ecx, 0x432abc
mov dl, 1
mov eax, 0x432adc
call fcn.0042ebd4
cmp byte [0x446c68], 0
je 0x430bb0
cmp byte [edi + 0x70], 0
je 0x430bc7
mov al, byte [edi + 0x70]
push eax
push 0
mov ecx, 0x432b18
mov dl, 1
mov eax, 0x432b3c
call fcn.0042ebd4
cmp byte [edi + 0x6b], 0
je 0x430c10
cmp dword [edi + 0x6e4], 0
je 0x430c10
cmp dword [edi + 0x6e4], 0x1fe
je 0x430bfb
mov eax, dword [edi + 0x6e4]
push eax
push 0
mov ecx, 0x432b80
mov dl, 1
xor eax, eax
call fcn.0042ea98
jmp 0x430c10
push 0x432bac
push 0
mov ecx, 0x432b80
mov dl, 1
xor eax, eax
call fcn.0042e950
cmp byte [edi + 0x70b], 0
jne 0x430ca1
cmp byte [0x446c68], 0
jne 0x430c40
mov al, byte [edi + 0x85]
push eax
push 0
mov ecx, 0x432bbc
mov dl, 1
mov eax, 0x432be0
call fcn.0042ebd4
cmp byte [edi + 0x86], 0
je 0x430c7b
cmp byte [0x446c68], 0
je 0x430c5b
cmp byte [edi + 0x87], 0
je 0x430c7b
mov al, byte [edi + 0x86]
push eax
mov al, byte [edi + 0x87]
push eax
push 0xffffffffffffffff
push 0
mov ecx, 0x432c08
mov dl, 1
xor eax, eax
call fcn.0042ed34
cmp byte [0x446c68], 0
je 0x430c8a
cmp byte [edi + 0x71], 0
je 0x430ca1
mov al, byte [edi + 0x71]
push eax
push 0
mov ecx, 0x432c30
mov dl, 1
mov eax, 0x432c4c
call fcn.0042ebd4
push 0
xor ecx, ecx
xor edx, edx
xor eax, eax
call fcn.0042e854
push 0
mov ecx, 0x432c84
xor edx, edx
xor eax, eax
call fcn.0042e854
cmp byte [edi + 0x70b], 0
je 0x4310fd
xor eax, eax
mov al, byte [edi + 0x2ad]
push eax
push 0
mov ecx, 0x432c98
mov dl, 1
xor eax, eax
call fcn.0042ea98
lea eax, [edi + 0x2ae]
movzx eax, word [eax]
push eax
push 0
mov ecx, 0x432cb4
mov dl, 1
xor eax, eax
call fcn.0042ea98
xor eax, eax
mov al, byte [edi + 0x2b0]
push eax
push 0
mov ecx, 0x432cd4
mov dl, 1
xor eax, eax
call fcn.0042ea98
xor eax, eax
mov al, byte [edi + 0x2b1]
push eax
push 0
mov ecx, 0x432cec
mov dl, 1
xor eax, eax
call fcn.0042ea98
xor eax, eax
mov al, byte [edi + 0x2b2]
push eax
push 0
mov ecx, 0x432d10
mov dl, 1
xor eax, eax
call fcn.0042ea98
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 0x430d7f
xor eax, eax
mov al, byte [edi + 0x2b3]
push eax
push 0
mov ecx, 0x432d28
mov dl, 1
xor eax, eax
call fcn.0042ea98
lea eax, [edi + 0x2cd]
mov eax, dword [eax]
push eax
push 0
mov ecx, 0x432d5c
mov dl, 1
xor eax, eax
call fcn.0042ea98
lea eax, [edi + 0x2dd]
mov eax, dword [eax]
push eax
push 0
mov ecx, 0x432d74
mov dl, 1
xor eax, eax
call fcn.0042ea98
lea eax, [edi + 0x2ed]
mov eax, dword [eax]
push eax
push 0
mov ecx, 0x432d90
mov dl, 1
xor eax, eax
call fcn.0042ea98
lea eax, [edi + 0x2fd]
mov eax, dword [eax]
push eax
push 0
mov ecx, 0x432dac
mov dl, 1
xor eax, eax
call fcn.0042ea98
lea eax, [edi + 0x30d]
mov eax, dword [eax]
push eax
push 0
mov ecx, 0x432dc8
mov dl, 1
xor eax, eax
call fcn.0042ea98
lea eax, [edi + 0x31d]
mov eax, dword [eax]
push eax
push 0
mov ecx, 0x432de8
mov dl, 1
xor eax, eax
call fcn.0042ea98
lea eax, [edi + 0x32d]
mov eax, dword [eax]
push eax
push 0
mov ecx, 0x432e00
mov dl, 1
xor eax, eax
call fcn.0042ea98
lea eax, [edi + 0x33d]
mov eax, dword [eax]
push eax
push 0
mov ecx, 0x432e18
mov dl, 1
xor eax, eax
call fcn.0042ea98
lea eax, [edi + 0x34d]
mov eax, dword [eax]
push eax
push 0
mov ecx, 0x432e34
mov dl, 1
xor eax, eax
call fcn.0042ea98
lea eax, [edi + 0x35d]
mov eax, dword [eax]
push eax
push 0
mov ecx, 0x432e5c
mov dl, 1
xor eax, eax
call fcn.0042ea98
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 0x430f3d
lea eax, [edi + 0x36d]
mov eax, dword [eax]
push eax
push 0
mov ecx, 0x432e8c
mov dl, 1
xor eax, eax
call fcn.0042ea98
lea eax, [edi + 0x371]
mov eax, dword [eax]
push eax
push 0
mov ecx, 0x432eb8
mov dl, 1
xor eax, eax
call fcn.0042ea98
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 0x430f37
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, 0x432ee4
call fcn.00403df4
mov ecx, dword [ebp - 0x10c]
mov dl, 1
xor eax, eax
call fcn.0042ea98
inc ebx
cmp bl, 8
jne 0x430ece
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 0x430fbe
lea eax, [edi + 0x385]
mov eax, dword [eax]
push eax
push 0
mov ecx, 0x432f00
mov dl, 1
xor eax, eax
call fcn.0042ea98
lea eax, [edi + 0x389]
mov eax, dword [eax]
push eax
push 0
mov ecx, 0x432f3c
mov dl, 1
xor eax, eax
call fcn.0042ea98
lea eax, [edi + 0x38d]
mov eax, dword [eax]
push eax
push 0
mov ecx, 0x432f78
mov dl, 1
xor eax, eax
call fcn.0042ea98
lea eax, [edi + 0x391]
mov eax, dword [eax]
push eax
push 0
mov ecx, 0x432fb0
mov dl, 1
xor eax, eax
call fcn.0042ea98
cmp byte [edi + 0x2ad], 0
je 0x43106e
push 0
xor ecx, ecx
mov dl, 1
xor eax, eax
call fcn.0042e854
test byte [edi + 0x2ad], 1
je 0x430ff1
push 0
mov ecx, 0x432fe8
mov dl, 1
xor eax, eax
call fcn.0042e854
test byte [edi + 0x2ad], 2
je 0x43100a
push 0
mov ecx, 0x433030
mov dl, 1
xor eax, eax
call fcn.0042e854
test byte [edi + 0x2ad], 4
je 0x431023
push 0
mov ecx, 0x43306c
mov dl, 1
xor eax, eax
call fcn.0042e854
test byte [edi + 0x2ad], 8
je 0x43103c
push 0
mov ecx, 0x4330b8
mov dl, 1
xor eax, eax
call fcn.0042e854
test byte [edi + 0x2ad], 0x10
je 0x431055
push 0
mov ecx, 0x4330f0
mov dl, 1
xor eax, eax
call fcn.0042e854
test byte [edi + 0x2ad], 0x20
je 0x43106e
push 0
mov ecx, 0x433128
mov dl, 1
xor eax, eax
call fcn.0042e854
cmp byte [edi + 0x2b3], 0
je 0x431710
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 0x431710
push 0
xor ecx, ecx
mov dl, 1
xor eax, eax
call fcn.0042e854
test byte [edi + 0x2b3], 1
je 0x4310c2
push 0
mov ecx, 0x433174
mov dl, 1
xor eax, eax
call fcn.0042e854
test byte [edi + 0x2b3], 4
je 0x4310db
push 0
mov ecx, 0x4331d0
mov dl, 1
xor eax, eax
call fcn.0042e854
test byte [edi + 0x2b3], 8
je 0x431710
push 0
mov ecx, 0x43322c
mov dl, 1
xor eax, eax
call fcn.0042e854
jmp 0x431710
mov bl, 9
lea esi, [ebp - 0x64]
call fcn.00408ab0
mov dword [esi], eax
add esi, 4
dec bl
jne 0x431102
mov eax, dword [ebp - 0x64]
mov edx, 0x43327c
call fcn.0040c328
mov eax, dword [ebp - 0x60]
mov edx, 0x433288
call fcn.0040c328
mov eax, dword [ebp - 0x5c]
mov edx, 0x433298
call fcn.0040c328
mov eax, dword [ebp - 0x58]
mov edx, 0x4332a8
call fcn.0040c328
mov eax, dword [ebp - 0x54]
mov edx, 0x4332b8
call fcn.0040c328
mov eax, dword [ebp - 0x50]
mov edx, 0x4332c8
call fcn.0040c328
mov eax, dword [ebp - 0x4c]
mov edx, 0x4332d8
call fcn.0040c328
mov eax, dword [ebp - 0x48]
mov edx, 0x4332ec
call fcn.0040c328
mov eax, dword [ebp - 0x44]
mov edx, 0x433300
call fcn.0040c328
mov al, byte [edi + 0x2ac]
dec eax
test al, al
jb 0x4314a9
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.00424ae0
mov edx, dword [ebp - 0x118]
mov eax, dword [ebp - 0x60]
call fcn.0040c328
test byte [edi + esi*4 + 0x2b0], 1
je 0x4311fe
lea eax, [ebp - 0x1c]
mov edx, 0x433310
call fcn.00403ba4
jmp 0x43120b
lea eax, [ebp - 0x1c]
mov edx, 0x43331c
call fcn.00403ba4
xor eax, eax
mov al, bl
lea eax, [eax + eax*2]
test byte [edi + eax*4 + 0x2b0], 2
je 0x43122b
lea eax, [ebp - 0x1c]
mov edx, 0x433328
call fcn.00403db0
jmp 0x431238
lea eax, [ebp - 0x1c]
mov edx, 0x43331c
call fcn.00403db0
xor eax, eax
mov al, bl
lea eax, [eax + eax*2]
test byte [edi + eax*4 + 0x2b0], 4
je 0x431258
lea eax, [ebp - 0x1c]
mov edx, 0x433334
call fcn.00403db0
jmp 0x431265
lea eax, [ebp - 0x1c]
mov edx, 0x43331c
call fcn.00403db0
xor eax, eax
mov al, bl
lea eax, [eax + eax*2]
test byte [edi + eax*4 + 0x2b0], 8
je 0x431285
lea eax, [ebp - 0x1c]
mov edx, 0x433340
call fcn.00403db0
jmp 0x431292
lea eax, [ebp - 0x1c]
mov edx, 0x43331c
call fcn.00403db0
xor eax, eax
mov al, bl
lea eax, [eax + eax*2]
test byte [edi + eax*4 + 0x2b0], 0x10
je 0x4312b2
lea eax, [ebp - 0x1c]
mov edx, 0x43334c
call fcn.00403db0
jmp 0x4312bf
lea eax, [ebp - 0x1c]
mov edx, 0x43331c
call fcn.00403db0
xor eax, eax
mov al, bl
lea eax, [eax + eax*2]
test byte [edi + eax*4 + 0x2b0], 0x20
je 0x4312df
lea eax, [ebp - 0x1c]
mov edx, 0x433358
call fcn.00403db0
jmp 0x4312ec
lea eax, [ebp - 0x1c]
mov edx, 0x43331c
call fcn.00403db0
lea eax, [ebp - 0x11c]
mov ecx, 0x43206c
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 0x4313d1
mov al, byte [ebp - 0x15]
mov byte [ebp - 0x16], al
jmp 0x4313da
dec byte [ebp - 0x15]
cmp byte [ebp - 0x15], 0xff
jne 0x4313b0
lea eax, [ebp - 0x1c]
call fcn.00403b0c
mov al, byte [ebp - 0x16]
cmp al, 0
jb 0x43142a
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 0x4313ec
mov eax, dword [ebp - 0x48]
mov edx, dword [ebp - 0x1c]
call fcn.0040c328
mov edx, ebx
mov eax, edi
call fcn.00428578
cmp al, 1
je 0x43144f
mov edx, ebx
mov eax, edi
call fcn.00428578
cmp al, 2
jne 0x43145e
lea eax, [ebp - 0x1c]
mov edx, 0x433364
call fcn.00403ba4
jmp 0x431494
mov edx, ebx
mov eax, edi
call fcn.00428578
cmp al, 3
je 0x431478
mov edx, ebx
mov eax, edi
call fcn.00428578
cmp al, 4
jne 0x431487
lea eax, [ebp - 0x1c]
mov edx, 0x433370
call fcn.00403ba4
jmp 0x431494
lea eax, [ebp - 0x1c]
mov edx, 0x43331c
call fcn.00403ba4
mov eax, dword [ebp - 0x44]
mov edx, dword [ebp - 0x1c]
call fcn.0040c328
inc ebx
dec byte [ebp - 0x29]
jne 0x43119a
mov byte [ebp - 0x15], 0xf8
lea esi, [ebp - 0x48]
mov byte [ebp - 0x16], 0
mov al, byte [edi + 0x2ac]
test al, al
jb 0x43150e
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 0x431508
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 0x4314c4
mov al, byte [edi + 0x2ac]
test al, al
jb 0x43158f
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, 0x43206c
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 0x43151e
sub esi, 4
inc byte [ebp - 0x15]
jne 0x4314b0
mov al, byte [edi + 0x2ac]
test al, al
jb 0x4316d0
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 0x431698
cmp byte [edi + 0xa7], 0
jne 0x431698
cmp byte [edi + 0xa9], 0
jne 0x431698
cmp byte [edi + 0xaa], 0
je 0x4316b8
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.0042e854
inc ebx
dec byte [ebp - 0x29]
jne 0x4315af
push 0
xor ecx, ecx
xor edx, edx
xor eax, eax
call fcn.0042e854
push 0
mov ecx, 0x433380
mov dl, 1
xor eax, eax
call fcn.0042e854
push 0
mov ecx, 0x4333d4
mov dl, 1
xor eax, eax
call fcn.0042e854
mov bl, 9
lea esi, [ebp - 0x64]
mov eax, dword [esi]
call fcn.0040a270
add esi, 4
dec bl
jne 0x431702
push 0
xor ecx, ecx
xor edx, edx
xor eax, eax
call fcn.0042e854
push 0
mov ecx, 0x433414
xor edx, edx
xor eax, eax
call fcn.0042e854
mov eax, dword [edi + 0x34]
push eax
push 0
mov ecx, 0x433424
mov dl, 1
mov eax, 0x43343c
call fcn.0042e950
cmp byte [edi + 0x70b], 0
jne 0x4317c0
cmp byte [edi + 0x2764], 0
jne 0x4317c0
cmp byte [edi + 0x32], 0
je 0x4317c0
cmp byte [edi + 0x31], 0
je 0x431779
push 0x433470
push 0
mov ecx, 0x433484
mov dl, 1
xor eax, eax
call fcn.0042e950
jmp 0x43178e
push 0x4334a0
push 0
mov ecx, 0x433484
mov dl, 1
xor eax, eax
call fcn.0042e950
cmp byte [edi + 0x30], 0
je 0x4317ab
push 0x4334b0
push 0
mov ecx, 0x4334c0
mov dl, 1
xor eax, eax
call fcn.0042e950
jmp 0x4317c0
push 0x4334dc
push 0
mov ecx, 0x4334c0
mov dl, 1
xor eax, eax
call fcn.0042e950
cmp dword [edi + 0x6ec], 0
je 0x4317e3
mov eax, dword [edi + 0x6ec]
push eax
push 0
mov ecx, 0x4334ec
mov dl, 1
mov eax, 0x433504
call fcn.0042e950
cmp byte [edi + 0x275c], 0
je 0x431832
push 0
mov ecx, 0x433540
mov dl, 1
xor eax, eax
call fcn.0042e854
push 1
mov ecx, 0x433558
xor edx, edx
mov eax, 0x433564
call fcn.0042e854
cmp byte [0x446c70], 0
je 0x431832
mov al, byte [edi + 0x275d]
push eax
push 0
mov ecx, 0x433590
mov dl, 1
mov eax, 0x4335a0
call fcn.0042ebd4
lea edx, [ebp - 0x16c]
lea eax, [edi + 0x96]
call fcn.0040e544
mov eax, dword [ebp - 0x16c]
push eax
push 0
mov ecx, 0x4335d8
mov dl, 1
xor eax, eax
call fcn.0042e950
mov al, byte [0x446c70]
and al, byte [0x446c68]
je 0x431893
cmp dword [edi + 0x704], 0
je 0x431893
mov edx, 0x431c68
lea eax, [ebp - 0x170]
mov ecx, dword [edi + 0x704]
call fcn.00403df4
mov eax, dword [ebp - 0x170]
xor edx, edx
call fcn.0042f8ac
mov al, byte [0x446b78]
dec eax
and eax, 0xff
cmp eax, dword [ebp - 0x10]
je 0x4318cf
push 0
xor ecx, ecx
xor edx, edx
xor eax, eax
call fcn.0042e854
push 0
xor ecx, ecx
xor edx, edx
xor eax, eax
call fcn.0042e854
push 0
xor ecx, ecx
xor edx, edx
xor eax, eax
call fcn.0042e854
jmp 0x43196c
cmp byte [0x446c70], 0
je 0x43196c
push 0
xor ecx, ecx
xor edx, edx
xor eax, eax
call fcn.0042e854
mov eax, dword [0x4469f4]
push eax
push 0
mov ecx, 0x4335f4
xor edx, edx
xor eax, eax
call fcn.0042e950
mov eax, dword [0x44691c]
push eax
push 0
mov ecx, 0x43360c
xor edx, edx
xor eax, eax
call fcn.0042e950
cmp byte [0x446c68], 0
je 0x431937
cmp byte [0x446bfc], 0
je 0x431937
push 0
mov ecx, 0x433628
xor edx, edx
xor eax, eax
call fcn.0042e854
cmp byte [0x446c68], 0
je 0x43196c
cmp dword [0x446bd0], 0
je 0x43196c
mov edx, 0x431c68
lea eax, [ebp - 0x174]
mov ecx, dword [0x446bd0]
call fcn.00403df4
mov eax, dword [ebp - 0x174]
xor edx, edx
call fcn.0042f8ac
inc dword [ebp - 0x10]
add dword [ebp - 0x30], 4
dec dword [ebp - 0x28]
jne 0x42fb66
cmp byte [0x446c68], 0
je 0x43198a
call fcn.0042f20c
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2c]
call fcn.00408cec
push 0x43364c
push dword [0x446c6c]
push 0x43367c
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 0x431a63
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 0x431a5b
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 0x431a0f
cmp ebx, 0x26
jge 0x431a6d
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 0x431aff
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 0x431b38
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.0042f97c
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 0x431b56
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 0x431b78
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 0x431b9f
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 0x431bdc
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