Function at 0x433590
Capabilities:
Encrypt data using speck

Disassembly:
sub esp, 0x124
mov eax, dword [0x526b24]
xor eax, esp
mov dword [esp + 0x120], eax
mov dl, byte [esp + 0x140]
mov ecx, dword [esp + 0x128]
mov eax, dword [esp + 0x144]
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0x134]
mov byte [esp], dl
mov dword [esp + 0x14], ecx
mov cl, byte [esp + 0x138]
mov byte [esp + 0x20], dl
mov edx, 0x7fff
mov byte [esp + 1], cl
mov byte [esp + 8], cl
mov dword [esp + 0x1c], eax
mov dword [esp + 0x40], edx
push ebx
movzx ebx, word [esp + 0x140]
mov dword [esp + 0x38], ebx
push ebp
push esi
movzx esi, word [esp + 0x148]
mov dword [esp + 0x3c], esi
push edi
cmp eax, 0xffc3d44f
je 0x433621
cmp eax, 0xffc3d44e
je 0x433621
mov byte [esp + 0x2a], 0
cmp eax, 0xffc3d44d
jne 0x433626
mov byte [esp + 0x2a], 1
mov edi, dword [0x62271c]
mov ecx, dword fs:[0x2c]
mov eax, dword [ecx + edi*4]
cmp byte [eax + 0x2198], 0
jne 0x43364b
call fcn.004ebad3
mov ecx, dword fs:[0x2c]
mov eax, dword [ecx + edi*4]
cmp dword [eax + 0x274], 0
jne 0x433664
lea ebp, [esp + 0x5c]
mov dword [esp + 0x20], ebp
jmp 0x43389f
cmp byte [eax + 0x2198], 0
jne 0x433679
call fcn.004ebad3
mov ecx, dword fs:[0x2c]
mov eax, dword [ecx + edi*4]
cmp byte [eax + 0x2198], 0
jne 0x433691
call fcn.004ebad3
mov ecx, dword fs:[0x2c]
mov eax, dword [ecx + edi*4]
imul ebp, dword [eax + 0x270], 0xd4
add ebp, dword [eax + 0x274]
cmp byte [eax + 0x2198], 0
mov dword [esp + 0x20], ebp
jne 0x4336bd
call fcn.004ebad3
mov ecx, dword fs:[0x2c]
mov eax, dword [ecx + edi*4]
cmp byte [eax + 0x2198], 0
jne 0x4336d5
call fcn.004ebad3
mov ecx, dword fs:[0x2c]
mov edx, dword [ecx + edi*4]
inc dword [edx + 0x270]
mov eax, dword [edx + 0x270]
cmp eax, dword [edx + 0x1c8]
jl 0x43370e
cmp byte [edx + 0x2198], 0
jne 0x433701
call fcn.004ebad3
mov ecx, dword fs:[0x2c]
mov eax, dword [ecx + edi*4]
mov dword [eax + 0x270], 0
mov al, byte [esp + 0x11]
mov cl, byte [esp + 0x10]
mov byte [ebp], al
mov byte [ebp + 6], cl
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov edx, dword fs:[0x2c]
mov esi, eax
mov ecx, dword [edx + edi*4]
cmp byte [ecx + 0x2198], 0
jne 0x433743
call fcn.004ebad3
mov edx, dword fs:[0x2c]
mov eax, dword [edx + edi*4]
cmp byte [eax + 0x2198], 0
mov dword [eax + 0x26c], esi
jne 0x433761
call fcn.004ebad3
mov edx, dword fs:[0x2c]
mov eax, dword [edx + edi*4]
cmp byte [eax + 0x2198], 0
jne 0x433779
call fcn.004ebad3
mov edx, dword fs:[0x2c]
mov eax, dword [edx + edi*4]
mov ecx, dword [eax + 0x26c]
sub ecx, dword [eax + 0x67c]
movd xmm0, ecx
cvtdq2pd xmm0, xmm0
shr ecx, 0x1f
addsd xmm0, qword [ecx*8 + 0x4f91a0]
cvtpd2ps xmm0, xmm0
divss xmm0, dword [0x4f9194]
movss dword [ebp + 8], xmm0
mov ecx, dword fs:[0x2c]
mov eax, dword [ecx + edi*4]
cmp byte [eax + 0x2198], 0
jne 0x4337cc
call fcn.004ebad3
mov ecx, dword fs:[0x2c]
mov eax, dword [ecx + edi*4]
cmp byte [eax + 0x2198], 0
mov esi, dword [eax + 0x26c]
jne 0x4337ea
call fcn.004ebad3
mov ecx, dword fs:[0x2c]
mov eax, dword [ecx + edi*4]
mov dword [eax + 0x67c], esi
call dword [sym.imp.USER32.dll_GetForegroundWindow]
mov esi, eax
test esi, esi
je 0x433865
mov eax, dword fs:[0x2c]
mov ecx, dword [eax + edi*4]
cmp byte [ecx + 0x2198], 0
jne 0x43381c
call fcn.004ebad3
mov eax, dword fs:[0x2c]
mov ecx, dword [eax + edi*4]
lea ebx, [ebp + 0xc]
cmp esi, dword [ecx + 0x268]
je 0x43385a
cmp byte [ecx + 0x2198], 0
jne 0x43383e
call fcn.004ebad3
mov eax, dword fs:[0x2c]
mov eax, dword [eax + edi*4]
push esi
push ebx
push 0x418
push dword [eax + 0x214]
call dword [sym.imp.USER32.dll_PostMessageW]
mov ebx, dword [esp + 0x44]
jmp 0x433873
xor eax, eax
mov word [ebx], ax
mov ebx, dword [esp + 0x44]
jmp 0x433873
mov dword [ebp + 0xc], 0x2f004e
mov dword [ebp + 0x10], 0x41
mov ecx, dword fs:[0x2c]
mov eax, dword [ecx + edi*4]
cmp byte [eax + 0x2198], 0
jne 0x433892
call fcn.004ebad3
mov ecx, dword fs:[0x2c]
mov eax, dword [ecx + edi*4]
mov dword [eax + 0x268], esi
mov esi, dword [esp + 0x40]
mov cl, byte [esp + 0x11]
cmp cl, 0xe7
jne 0x4338f0
mov ecx, dword [esp + 0x24]
push 0x7fff
push ebp
push dword [esp + 0x34]
mov ax, word [ecx + 4]
push dword [esp + 0x3c]
mov word [ebp + 2], ax
mov eax, 0x55
push 0
push 0xe7
push ecx
push dword [esp + 0x15c]
mov word [ebp + 4], ax
push dword [esp + 0x15c]
mov eax, dword [esp + 0x38]
push eax
call fcn.0042f9c0
jmp 0x4354f5
mov al, cl
mov word [ebp + 2], si
add al, 0x64
mov dl, 3
cmp dl, al
mov edx, dword fs:[0x2c]
sbb eax, eax
and eax, ebx
movzx eax, ax
mov dword [esp + 0x1c], eax
mov eax, dword [edx + edi*4]
cmp byte [eax + 0x2198], 0
jne 0x43392a
call fcn.004ebad3
mov edx, dword fs:[0x2c]
mov cl, byte [esp + 0x11]
mov esi, dword [edx + edi*4]
mov eax, dword [esp + 0x14]
cmp eax, dword [esi + 0x1f0]
jne 0x433992
mov bl, byte [esp + 0x158]
and bl, 1
jne 0x433979
mov al, byte [esp + 0x10]
xor al, 1
shl al, 7
mov byte [esp + 0x12], al
cmp byte [esi + 0x2198], bl
jne 0x433966
call fcn.004ebad3
mov edx, dword fs:[0x2c]
mov eax, dword [edx + edi*4]
movzx ecx, byte [esp + 0x11]
mov dl, byte [esp + 0x12]
mov byte [eax + ecx + 0x570], dl
mov esi, dword [esp + 0x18]
cmp byte [esp + 0x2a], 0
je 0x433a13
mov eax, 0x69
jmp 0x433a25
mov edx, dword [esp + 0x158]
mov ebx, edx
mov eax, dword [esi + 0x814]
mov esi, dword [esp + 0x18]
movzx ebp, cl
shr ebx, 4
and bl, 1
lea ecx, [ebp*4]
add ecx, ebp
cmp byte [eax + ecx*4 + 8], 0
jne 0x433a0a
push dword [esp + 0x30]
push esi
push edx
call fcn.004334d0
add esp, 0xc
test al, al
je 0x433a0a
mov al, byte [esp + 0x10]
mov ecx, dword fs:[0x2c]
xor al, 1
shl al, 7
mov byte [esp + 0x12], al
mov eax, dword [ecx + edi*4]
cmp byte [eax + 0x2198], 0
jne 0x4339fc
call fcn.004ebad3
mov ecx, dword fs:[0x2c]
mov eax, dword [ecx + edi*4]
mov cl, byte [esp + 0x12]
mov byte [eax + ebp + 0x570], cl
mov ebp, dword [esp + 0x20]
jmp 0x43397d
test bl, bl
mov eax, 0x20
mov ecx, 0x61
cmovne eax, ecx
movzx eax, ax
lea ecx, [ebp + 4]
mov word [ecx], ax
mov edx, dword fs:[0x2c]
mov dword [esp + 0x4c], ecx
mov eax, dword [edx + edi*4]
cmp byte [eax + 0x2198], 0
jne 0x433a4e
call fcn.004ebad3
mov edx, dword fs:[0x2c]
mov eax, dword [edx + edi*4]
mov bl, byte [esp + 0x11]
cmp byte [eax + 0x142], 0
je 0x433a8e
cmp bl, 0x5b
je 0x433a68
cmp bl, 0x5c
jne 0x433a8e
mov cl, byte [esp + 0x10]
test cl, cl
jne 0x433a92
mov eax, dword [esp + 0x1c]
push 0
push SysReAllocString
push 0x7fff
push ebp
push dword [esp + 0x3c]
push 0
push eax
push esi
jmp 0x4354e8
mov cl, byte [esp + 0x10]
cmp byte [eax + 0x81c], 0
je 0x433b70
cmp bl, 0x1b
jne 0x433b70
test cl, cl
jne 0x433b70
push 0
push str.32771
call dword [sym.imp.USER32.dll_FindWindowW]
test eax, eax
je 0x433b69
push 0
push eax
call dword [sym.imp.USER32.dll_GetWindowThreadProcessId]
mov esi, eax
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp esi, eax
jne 0x433b69
push 0xffc3d44d
push 0
push 0
push 0
push 0x1b
push 0
call fcn.0043db20
mov ecx, dword fs:[0x2c]
add esp, 0x18
mov eax, dword [ecx + edi*4]
cmp byte [eax + 0x2198], 0
jne 0x433b14
call fcn.004ebad3
mov ecx, dword fs:[0x2c]
mov eax, dword [ecx + edi*4]
push 0xffc3d44d
push 0
push 0
mov al, byte [eax + 0x147]
shr al, 3
and al, 1
or al, 0xa4
push 0
movzx eax, al
push eax
push 1
call fcn.0043db20
mov eax, dword [esp + 0x34]
push 0
push SysReAllocString
push 0x7fff
push ebp
push dword [esp + 0x54]
push 0
push eax
push 0x1b
push dword [esp + 0x5c]
push dword [esp + 0x50]
call fcn.00436160
add esp, 0x40
jmp 0x4354f8
mov edx, dword fs:[0x2c]
mov eax, dword [esp + 0x1c]
mov ecx, dword [edx + edi*4]
movzx eax, ax
mov dword [esp + 0x44], eax
lea ebp, [eax + eax*4]
mov eax, dword [ecx + 0x818]
shl ebp, 2
cmp byte [ecx + 0x2198], 0
mov al, byte [eax + ebp + 0x13]
mov byte [esp + 0x3c], al
jne 0x433ba7
call fcn.004ebad3
mov edx, dword fs:[0x2c]
mov ebx, dword [edx + edi*4]
mov eax, dword [esp + 0x14]
cmp eax, dword [ebx + 0x1f4]
jne 0x433bc7
cmp byte [esp + 0x3c], 0
je 0x433bc7
mov esi, dword [ebx + 0x818]
add esi, ebp
jmp 0x433bd8
movzx eax, byte [esp + 0x11]
lea ecx, [eax + eax*4]
mov eax, dword [ebx + 0x814]
lea esi, [eax + ecx*4]
cmp byte [esp + 0x2a], 0
je 0x433c4c
mov ecx, dword [esp + 0x2c]
cmp ecx, 0xffc3d44e
jne 0x433c15
cmp byte [esp + 0x10], 0
je 0x433c15
cmp dword [ebx + 0x810], esi
jne 0x433c15
mov byte [esi + 0xd], 0
mov byte [esi + 0x10], 0
mov eax, dword fs:[0x2c]
mov eax, dword [eax + edi*4]
mov dword [eax + 0x810], 0
push 0x7fff
push dword [esp + 0x24]
push ecx
push dword [esp + 0x3c]
mov ebp, dword [esp + 0x28]
push dword [esp + 0x2c]
push ebp
push dword [esp + 0x3c]
push dword [esp + 0x15c]
push dword [esp + 0x15c]
push dword [esp + 0x38]
call fcn.0042f9c0
jmp 0x4354f5
mov bh, byte [esp + 0x10]
mov eax, 0x7fff
mov dword [esp + 0x54], eax
test bh, bh
jne 0x433c6b
mov byte [esi + 0x11], bh
mov word [esi + 4], ax
mov edx, dword fs:[0x2c]
mov eax, dword [edx + edi*4]
cmp byte [eax + 0x2198], 0
jne 0x433c83
call fcn.004ebad3
mov edx, dword fs:[0x2c]
mov eax, dword [edx + edi*4]
mov ebp, dword [esp + 0x14]
cmp ebp, dword [eax + 0x1f0]
jne 0x433d72
mov cl, byte [esp + 0x11]
test cl, cl
jne 0x433cd2
push 0x7fff
push dword [esp + 0x24]
push dword [esp + 0x34]
push dword [esp + 0x3c]
push dword [esp + 0x2c]
push 0
push dword [esp + 0x3c]
push dword [esp + 0x15c]
push dword [esp + 0x15c]
push ebp
call fcn.0042f9c0
jmp 0x4354f5
cmp cl, 1
je 0x433ce0
cmp cl, 2
jne 0x433d72
cmp byte [eax + 0x2198], 0
jne 0x433cf5
call fcn.004ebad3
mov edx, dword fs:[0x2c]
mov eax, dword [edx + edi*4]
cmp dword [eax + 0x19c], 0
jne 0x433d4b
push 0
push str.32768
call dword [sym.imp.USER32.dll_FindWindowW]
mov ebx, eax
test ebx, ebx
je 0x433d67
mov ecx, dword fs:[0x2c]
mov ecx, dword [ecx + edi*4]
cmp byte [ecx + 0x2198], 0
jne 0x433d2c
call fcn.004ebad3
push 0
push ebx
call dword [sym.imp.USER32.dll_GetWindowThreadProcessId]
mov edx, dword fs:[0x2c]
mov bh, byte [esp + 0x10]
mov ecx, dword [edx + edi*4]
cmp eax, dword [ecx + 0x250]
jne 0x433d72
mov byte [esi + 0x10], 0
xor bh, 1
mov byte [esi + 0xd], bh
push 0x7fff
push dword [esp + 0x24]
push dword [esp + 0x34]
jmp 0x433c1f
mov edx, dword fs:[0x2c]
mov bh, byte [esp + 0x10]
mov ecx, dword [edx + edi*4]
mov eax, dword [ecx + 0x810]
test eax, eax
je 0x433dc8
cmp eax, esi
je 0x433dc8
test bh, bh
jne 0x433dc8
cmp byte [ecx + 0x2198], bh
jne 0x433d9b
call fcn.004ebad3
mov edx, dword fs:[0x2c]
mov ecx, dword [edx + edi*4]
cmp ebp, dword [ecx + 0x1f4]
jne 0x433db0
xor eax, eax
cmp byte [esi + 8], al
sete al
jmp 0x433dba
mov eax, dword [ecx + 0x810]
movzx eax, byte [eax + 8]
test eax, eax
je 0x433dc8
mov eax, dword [ecx + 0x810]
mov byte [eax + 0x12], 1
cmp byte [esi + 9], 0
jne 0x433dd8
cmp byte [esi + 0xa], 0
je 0x433d4f
mov dword [esp + 0x38], 0x7fff
mov dword [esp + 0x40], 0
test bh, bh
je 0x433e16
mov cl, byte [esi + 0x10]
movzx eax, word [esi + 4]
mov dl, byte [esi + 0xd]
mov byte [esp + 0x37], cl
mov ecx, 0x7fff
mov byte [esp + 0x12], dl
mov byte [esi + 0x10], 0
cmp ax, cx
je 0x433e26
mov dword [esp + 0x38], eax
mov word [esi + 4], cx
jmp 0x433e26
mov al, byte [esp + 0x12]
mov byte [esp + 0x12], al
mov al, byte [esp + 0x12]
mov byte [esp + 0x37], al
mov al, bh
xor bl, bl
xor al, 1
mov byte [esi + 0xd], al
mov eax, dword fs:[0x2c]
mov eax, dword [eax + edi*4]
cmp byte [eax + 0x2198], bl
jne 0x433e45
call fcn.004ebad3
mov eax, dword fs:[0x2c]
mov eax, dword [eax + edi*4]
cmp ebp, dword [eax + 0x1f4]
jne 0x433eea
cmp byte [esi + 8], 0
je 0x433f5d
mov eax, dword [eax + 0x814]
cmp byte [eax + 0xcb5], 0
jne 0x433e80
cmp byte [eax + 0xcc9], 0
jne 0x433e80
xor cl, cl
jmp 0x433e82
mov cl, 1
mov byte [eax + 0x161], cl
mov eax, dword fs:[0x2c]
mov eax, dword [eax + edi*4]
mov eax, dword [eax + 0x814]
cmp byte [eax + 0xcdd], 0
jne 0x433ead
cmp byte [eax + 0xcf1], 0
jne 0x433ead
xor cl, cl
jmp 0x433eaf
mov cl, 1
mov byte [eax + 0x175], cl
mov eax, dword fs:[0x2c]
mov eax, dword [eax + edi*4]
mov eax, dword [eax + 0x814]
cmp byte [eax + 0xc8d], 0
jne 0x433ee0
cmp byte [eax + 0xca1], 0
jne 0x433ee0
xor cl, cl
mov byte [eax + 0x14d], cl
jmp 0x433f5d
mov cl, 1
mov byte [eax + 0x14d], cl
jmp 0x433f5d
cmp byte [eax + 0x2198], 0
jne 0x433ef8
call fcn.004ebad3
mov eax, dword fs:[0x2c]
mov eax, dword [eax + edi*4]
cmp dword [eax + 0x1f4], 0
jne 0x433f5d
push 1
call fcn.0043d7d0
mov ecx, dword fs:[0x2c]
add esp, 4
mov bl, al
mov ecx, dword [ecx + edi*4]
cmp byte [ecx + 0x2198], 0
jne 0x433f2e
call fcn.004ebad3
mov ecx, dword fs:[0x2c]
mov eax, dword [ecx + edi*4]
cmp byte [eax + 0x2198], 0
mov byte [eax + 0x146], bl
jne 0x433f4c
call fcn.004ebad3
mov eax, dword fs:[0x2c]
mov eax, dword [eax + edi*4]
mov byte [eax + 0x147], bl
mov bl, 1
mov eax, dword [esi]
test eax, eax
je 0x433f6d
cmp dword [eax], 6
mov byte [esp + 0x2a], 1
je 0x433f72
mov byte [esp + 0x2a], 0
test bl, bl
jne 0x433f80
push 1
call fcn.0043d7d0
add esp, 4
mov cl, byte [esi + 9]
test cl, cl
je 0x434165
test bh, bh
jne 0x434165
mov eax, dword fs:[0x2c]
mov eax, dword [eax + edi*4]
mov eax, dword [eax + 0x810]
test eax, eax
je 0x433fb3
cmp byte [esi + 0xa], bh
je 0x433fb3
cmp esi, eax
jne 0x434165
cmp cl, 1
jne 0x433fe1
cmp byte [esp + 0x3c], 0
mov eax, dword [esp + 0x44]
jne 0x433fc8
movzx eax, byte [esp + 0x11]
push dword [esp + 0x3c]
push eax
call fcn.0043b4d0
add esp, 8
test al, al
je 0x433fe1
mov bh, 1
mov byte [esp + 0x2b], bh
jmp 0x434001
mov eax, dword fs:[0x2c]
xor bh, bh
mov byte [esp + 0x2b], bh
mov eax, dword [eax + edi*4]
cmp esi, dword [eax + 0x810]
je 0x434001
mov dword [eax + 0x810], esi
mov byte [esi + 0x12], bh
cmp byte [esi + 0xa], 0
je 0x4340ef
mov eax, dword fs:[0x2c]
mov eax, dword [eax + edi*4]
cmp byte [eax + 0x2198], 0
jne 0x434022
call fcn.004ebad3
mov eax, dword fs:[0x2c]
mov ecx, dword [eax + edi*4]
mov al, byte [esi + 8]
mov bl, byte [ecx + 0x146]
test al, al
je 0x43403c
not al
and bl, al
test bl, bl
jne 0x43404e
test bh, bh
jne 0x43404e
test byte [esi + 0xc], 1
je 0x4340ef
cmp byte [ecx + 0x2198], 0
jne 0x43405c
call fcn.004ebad3
mov eax, dword fs:[0x2c]
mov edx, dword [eax + edi*4]
cmp ebp, dword [edx + 0x1f4]
jne 0x434086
cmp byte [esp + 0x3c], 0
je 0x434086
mov eax, dword [edx + 0x824]
movzx ecx, bl
shl ecx, 9
add ecx, dword [esp + 0x44]
jmp 0x434099
movzx eax, byte [esp + 0x11]
movzx ecx, bl
shl ecx, 8
add ecx, eax
mov eax, dword [edx + 0x828]
movzx ebx, word [eax + ecx*2]
movzx eax, bx
mov dword [esp + 0x38], eax
test bx, bx
jns 0x4340b7
mov word [esi + 4], bx
mov dword [esp + 0x38], 0x7fff
jmp 0x4340fb
and ebx, 0x7fff
cmp byte [edx + 0x2198], 0
jne 0x4340cb
call fcn.004ebad3
mov eax, dword fs:[0x2c]
mov edx, dword [eax + edi*4]
mov eax, dword [edx + 0x884]
cmp bx, word [eax]
jae 0x4340ef
mov eax, dword [edx + 0x820]
mov ecx, ebx
mov ax, word [eax + ecx*2]
mov word [esi + 4], ax
mov eax, 0x7fff
cmp word [esp + 0x38], ax
jne 0x434161
mov al, byte [esp + 0x2b]
test al, al
je 0x434113
mov ecx, dword [esp + 0x4c]
mov edx, 0x23
or byte [esi + 0xc], 8
mov word [ecx], dx
cmp byte [esi + 8], 0
jne 0x43414d
test byte [esi + 0xc], 1
jne 0x43414d
cmp byte [esp + 0x2a], 0
jne 0x43414d
test al, al
jne 0x43414d
mov ebp, dword [esp + 0x18]
push 0
push SysReAllocString
push 0x7fff
push dword [esp + 0x2c]
mov byte [esi + 0x11], 1
push dword [esp + 0x3c]
push 0
jmp 0x4354e3
push 0x7fff
push dword [esp + 0x24]
push dword [esp + 0x34]
push 0
jmp 0x433c23
mov bh, byte [esp + 0x10]
cmp byte [esi + 0xa], 0
mov byte [esp + 0x2b], 0
je 0x4341e5
test bh, bh
je 0x4341e5
mov eax, dword fs:[0x2c]
mov dl, byte [esp + 0x37]
mov eax, dword [eax + edi*4]
cmp dword [eax + 0x810], esi
jne 0x434197
test dl, dl
je 0x4341e5
mov dword [eax + 0x810], 0
cmp byte [esi + 0xb], 0
jne 0x4341e0
mov al, byte [esi + 0xc]
test al, 8
je 0x4341ad
xor cl, cl
and al, 0xf7
mov byte [esi + 0xc], al
jmp 0x4341af
mov cl, 1
test dl, dl
je 0x433d55
test cl, cl
je 0x433d55
mov ebp, dword [esp + 0x18]
push 0
push SysReAllocString
push 0x7fff
push dword [esp + 0x2c]
push dword [esp + 0x3c]
push dword [esp + 0x44]
jmp 0x4354e3
mov byte [esp + 0x2b], 1
cmp byte [esi + 9], 0
je 0x434378
test bh, bh
je 0x434378
mov eax, dword fs:[0x2c]
mov eax, dword [eax + edi*4]
cmp dword [eax + 0x810], esi
jne 0x434212
mov dword [eax + 0x810], 0
cmp byte [esi + 0xe], 0
je 0x434233
push 0xffc3d44d
push 0
push 0
push 0
push 0x12
push 1
mov byte [esi + 0xe], 0
call fcn.0043db20
add esp, 0x18
cmp byte [esi + 0xf], 0
je 0x434254
push 0xffc3d44d
push 0
push 0
push 0
push 0x10
push 1
mov byte [esi + 0xf], 0
call fcn.0043db20
add esp, 0x18
mov edx, 0x7fff
cmp word [esp + 0x38], dx
jne 0x43427a
mov al, byte [esi + 0xc]
test al, 8
je 0x43427a
push edx
push dword [esp + 0x24]
and al, 0xf7
push dword [esp + 0x34]
mov byte [esi + 0xc], al
jmp 0x433c1f
mov cl, byte [esp + 0x2a]
mov al, byte [esi + 0x12]
test cl, cl
je 0x4342fa
cmp al, 2
jne 0x4342e4
mov ebp, dword [esp + 0x1c]
mov ebx, dword [esp + 0x18]
push 0xffc3d44e
push 0
push 0
push ebp
push ebx
push 1
call fcn.0043db20
push 0xffc3d44d
push 0
push 0
push ebp
push ebx
push 2
call fcn.0043db20
push 0
push SysReAllocString
push 0x7fff
push dword [esp + 0x5c]
push dword [esp + 0x6c]
push dword [esp + 0x74]
push ebp
push ebx
push dword [esp + 0x74]
push dword [esp + 0x68]
call fcn.00436160
add esp, 0x58
jmp 0x4354f8
cmp al, 1
jne 0x434340
push 0x7fff
push dword [esp + 0x24]
push dword [esp + 0x34]
jmp 0x433c1f
test al, al
je 0x434340
cmp word [esp + 0x38], dx
jne 0x434340
cmp byte [esi + 8], 0
jne 0x433d55
test byte [esi + 0xc], 1
mov ebp, dword [esp + 0x18]
je 0x43432f
push 0x7fff
push dword [esp + 0x24]
push dword [esp + 0x34]
push dword [esp + 0x3c]
jmp 0x433c27
push 0
push SysReAllocString
push 0x7fff
jmp 0x4354d7
cmp byte [esi + 0xa], 0
jne 0x434367
cmp byte [esi + 8], 0
jne 0x433d55
test byte [esi + 0xc], 1
jne 0x433d55
test cl, cl
jne 0x433d55
jmp 0x4341bf
cmp byte [esp + 0x12], 0
jne 0x434378
cmp byte [esi + 0xb], 0
je 0x433d55
mov eax, dword fs:[0x2c]
mov ecx, 0x7ffd
mov byte [esp + 0x13], 0
mov eax, dword [eax + edi*4]
cmp dword [eax + 0x810], 0
je 0x4348de
test bh, bh
je 0x4343a6
cmp byte [esi + 0xb], 0
je 0x4348de
mov ebp, 0x7fff
cmp word [esp + 0x38], bp
jne 0x434c17
movzx ebp, word [esi + 6]
mov eax, 0x7fff
xor ebx, ebx
mov dword [esp + 0x48], ebp
cmp bp, ax
je 0x4345db
nop
mov eax, dword fs:[0x2c]
mov eax, dword [eax + edi*4]
cmp byte [eax + 0x2198], 0
jne 0x4343e7
call fcn.004ebad3
mov eax, dword fs:[0x2c]
mov ecx, dword [esp + 0x48]
movzx ecx, cx
mov ebp, dword [eax + edi*4]
mov eax, dword [ebp + 0x84c]
mov edx, dword [eax + ecx*4]
mov al, byte [edx + 0x11]
test al, al
jne 0x434448
cmp word [edx + 0xa], 0
je 0x434484
movzx ecx, word [edx + 0xc]
mov dword [esp + 0x48], ecx
movzx eax, word [edx + 0xa]
lea ecx, [eax + eax*4]
mov eax, dword [ebp + 0x818]
cmp byte [eax + ecx*4 + 0xd], 0
lea eax, [eax + ecx*4]
je 0x43446e
cmp byte [edx + 0x16], 0
je 0x434462
cmp byte [esp + 0x10], 0
jne 0x434482
mov ax, word [edx + 4]
mov word [esi + 4], ax
test ebx, ebx
jne 0x434490
jmp 0x43446e
movzx ecx, word [edx + 0xc]
mov dword [esp + 0x48], ecx
test al, al
je 0x434416
movzx eax, al
lea ecx, [eax + eax*4]
mov eax, dword [ebp + 0x814]
jmp 0x434423
cmp byte [esp + 0x10], 0
jne 0x43446e
test ebx, ebx
cmove ebx, edx
mov ebp, dword [esp + 0x48]
mov eax, 0x7fff
cmp bp, ax
jne 0x4343d0
jmp 0x434488
mov ebx, edx
mov ebp, dword [esp + 0x48]
test ebx, ebx
je 0x4345d6
movzx ecx, byte [ebx + 0x11]
cmp ecx, 0x12
ja case.0x4344a4.1
movzx eax, byte [ecx + 0x435528]
jmp dword [eax*4 + 0x435514]
mov eax, dword fs:[0x2c]
mov ecx, 0xc80
mov ebp, 0xc94
mov edx, dword [eax + edi*4]
mov eax, dword [edx + 0x814]
cmp byte [eax + 0xca1], 0
cmovne ecx, ebp
add ecx, eax
mov dword [edx + 0x810], ecx
jmp 0x434568
mov eax, dword fs:[0x2c]
mov ecx, 0xca8
mov ebp, 0xcbc
mov edx, dword [eax + edi*4]
mov eax, dword [edx + 0x814]
cmp byte [eax + 0xcc9], 0
cmovne ecx, ebp
add ecx, eax
mov dword [edx + 0x810], ecx
jmp 0x434568
mov eax, dword fs:[0x2c]
mov ecx, 0xcd0
mov ebp, 0xce4
mov edx, dword [eax + edi*4]
mov eax, dword [edx + 0x814]
cmp byte [eax + 0xcf1], 0
cmovne ecx, ebp
add ecx, eax
mov dword [edx + 0x810], ecx
jmp 0x434568
mov eax, dword fs:[0x2c]
mov edx, dword [eax + edi*4]
movzx eax, word [ebx + 0xa]
lea ecx, [eax + eax*4]
mov eax, dword [edx + 0x818]
jmp 0x43455f
mov eax, dword fs:[0x2c]
lea ecx, [ecx + ecx*4]
mov edx, dword [eax + edi*4]
mov eax, dword [edx + 0x814]
lea eax, [eax + ecx*4]
mov dword [edx + 0x810], eax
movzx eax, word [ebx + 6]
test ax, ax
je 0x434577
mov dword [esp + 0x38], eax
jmp 0x4345c0
movzx eax, word [ebx + 4]
mov ecx, dword [esp + 0x4c]
mov ebx, dword [esp + 0x2c]
mov ebp, dword [esp + 0x30]
push ecx
mov dword [esp + 0x3c], eax
lea eax, [esp + 0x17]
push eax
lea eax, [esi + 0xc]
push eax
push ebx
lea eax, [esp + 0x48]
push ebp
push eax
call fcn.00438bf0
add esp, 0x18
mov dword [esp + 0x40], eax
test eax, eax
jne 0x4345bc
push 0x7fff
push dword [esp + 0x24]
push ebx
push ebp
jmp 0x433c23
mov eax, dword [esp + 0x38]
movzx ebp, ax
mov eax, dword fs:[0x2c]
mov eax, dword [eax + edi*4]
mov eax, dword [eax + 0x810]
mov byte [eax + 0x12], 2
mov ecx, 0x7ffd
mov eax, 0x7ffe
cmp bp, ax
je 0x4345ee
cmp bp, cx
jne 0x4348da
cmp byte [esp + 0x10], 0
jne 0x4345f9
mov byte [esi + 0x10], 1
mov eax, dword fs:[0x2c]
mov eax, dword [eax + edi*4]
cmp byte [eax + 0x2198], 0
jne 0x434610
call fcn.004ebad3
mov eax, dword fs:[0x2c]
mov eax, dword [eax + edi*4]
test byte [eax + 0x147], 0xc
jne 0x434639
push 0xffc3d44d
push 0
push 0
push 0
push 0x12
push 0
call fcn.0043db20
add esp, 0x18
mov dl, byte [esp + 0x11]
cmp dl, 0xa2
je 0x434647
cmp dl, 0xa3
jne 0x434671
mov cl, byte [esp + 0x10]
mov ebx, dword [esp + 0x18]
test cl, cl
jne 0x434679
push 0xffc3d44d
push 0
push 0
push dword [esp + 0x28]
push ebx
push 1
call fcn.0043db20
mov dl, byte [esp + 0x29]
add esp, 0x18
jmp 0x434675
mov ebx, dword [esp + 0x18]
mov cl, byte [esp + 0x10]
mov eax, dword fs:[0x2c]
mov eax, dword [eax + edi*4]
mov eax, dword [eax + 0x810]
mov byte [eax + 0xe], 1
mov eax, 0x7ffd
cmp bp, ax
jne 0x4346f1
mov ecx, dword fs:[0x2c]
mov eax, dword [ecx + edi*4]
cmp byte [eax + 0x2198], 0
jne 0x4346b5
call fcn.004ebad3
mov ecx, dword fs:[0x2c]
mov eax, dword [ecx + edi*4]
test byte [eax + 0x147], 0x30
jne 0x4346df
push 0xffc3d44d
push 0
push 0
push 0
push 0x10
push 0
call fcn.0043db20
mov ecx, dword fs:[0x2c]
add esp, 0x18
mov eax, dword [ecx + edi*4]
mov eax, dword [eax + 0x810]
mov byte [eax + 0xf], 1
jmp 0x4347ab
mov eax, 0x7ffe
cmp bp, ax
jne 0x4347ab
cmp dl, 0xa0
je 0x434709
cmp dl, 0xa1
jne 0x434725
test cl, cl
jne 0x434725
push 0xffc3d44d
push 0
push 0
push dword [esp + 0x28]
push ebx
push 1
call fcn.0043db20
add esp, 0x18
mov eax, dword fs:[0x2c]
mov eax, dword [eax + edi*4]
cmp byte [eax + 0x2198], 0
jne 0x43473c
call fcn.004ebad3
mov eax, dword fs:[0x2c]
mov eax, dword [eax + edi*4]
test byte [eax + 0x147], 0x10
je 0x434768
push 0xffc3d44d
push 0
push 0
push 0
push 0xa0
push 1
call fcn.0043db20
add esp, 0x18
mov eax, dword fs:[0x2c]
mov eax, dword [eax + edi*4]
cmp byte [eax + 0x2198], 0
jne 0x43477f
call fcn.004ebad3
mov eax, dword fs:[0x2c]
mov eax, dword [eax + edi*4]
test byte [eax + 0x147], 0x20
je 0x4347ab
push 0xffc3d44d
push 0
push 0
push 0
push 0xa1
push 1
call fcn.0043db20
add esp, 0x18
mov eax, dword fs:[0x2c]
mov eax, dword [eax + edi*4]
cmp byte [eax + 0x2198], 0
jne 0x4347c2
call fcn.004ebad3
mov eax, dword fs:[0x2c]
mov eax, dword [eax + edi*4]
test byte [eax + 0x147], 1
je 0x4347ee
push 0xffc3d44d
push 0
push 0
push 0
push 0xa2
push 1
call fcn.0043db20
add esp, 0x18
mov eax, dword fs:[0x2c]
mov eax, dword [eax + edi*4]
cmp byte [eax + 0x2198], 0
jne 0x434805
call fcn.004ebad3
mov eax, dword fs:[0x2c]
mov eax, dword [eax + edi*4]
test byte [eax + 0x147], 2
je 0x434831
push 0xffc3d44d
push 0
push 0
push 0
push 0xa3
push 1
call fcn.0043db20
add esp, 0x18
push 0xffc3d44d
push 0
push 0
push 0
push 9
push 2
call fcn.0043db20
mov eax, 0x7ffd
add esp, 0x18
cmp bp, ax
jne 0x4348a1
mov eax, dword fs:[0x2c]
mov eax, dword [eax + edi*4]
mov eax, dword [eax + 0x810]
cmp byte [eax + 0xf], 0
je 0x4348a1
mov al, byte [esp + 0x11]
cmp al, 0x60
jb 0x434873
cmp al, 0x69
jbe 0x434877
cmp al, 0x6e
jne 0x4348a1
push 0xffc3d44d
push 0
push 0
push 0
push 0x10
push 1
call fcn.0043db20
mov eax, dword fs:[0x2c]
add esp, 0x18
mov eax, dword [eax + edi*4]
mov eax, dword [eax + 0x810]
mov byte [eax + 0xf], 0
cmp byte [esp + 0x10], 0
mov ecx, 0x68
mov eax, dword [esp + 0x4c]
mov word [eax], cx
jne 0x4348b8
mov byte [esi + 0x11], 1
push 0
push SysReAllocString
push 0x7fff
push dword [esp + 0x2c]
push dword [esp + 0x3c]
push dword [esp + 0x44]
push dword [esp + 0x34]
push ebx
jmp 0x4354e8
mov ebp, dword [esp + 0x14]
mov eax, 0x7fff
cmp word [esp + 0x38], ax
jne 0x434c13
mov eax, dword fs:[0x2c]
mov eax, dword [eax + edi*4]
cmp byte [eax + 0x2198], 0
jne 0x434905
call fcn.004ebad3
mov eax, dword fs:[0x2c]
mov ecx, dword [eax + edi*4]
mov al, byte [esi + 8]
mov bl, byte [ecx + 0x146]
test al, al
je 0x43491f
not al
and bl, al
cmp byte [ecx + 0x2198], 0
jne 0x43492d
call fcn.004ebad3
mov eax, dword fs:[0x2c]
mov edx, dword [eax + edi*4]
cmp ebp, dword [edx + 0x1f4]
jne 0x43495b
cmp byte [esp + 0x3c], 0
je 0x43495b
mov eax, dword [edx + 0x824]
mov bh, byte [esp + 0x11]
movzx ecx, bl
shl ecx, 9
add ecx, dword [esp + 0x44]
jmp 0x434970
mov bh, byte [esp + 0x11]
movzx ecx, bl
movzx eax, bh
shl ecx, 8
add ecx, eax
mov eax, dword [edx + 0x828]
movzx ecx, word [eax + ecx*2]
movzx eax, cx
movzx ebp, cx
mov dword [esp + 0x38], eax
mov eax, ebp
cmp cx, word [esp + 0x54]
jne 0x434a26
cmp byte [edx + 0x81c], 0
je 0x434a26
cmp bh, 9
je 0x434a26
and bl, 0xf3
cmp byte [edx + 0x2198], 0
jne 0x4349b2
call fcn.004ebad3
mov eax, dword fs:[0x2c]
mov edx, dword [eax + edi*4]
mov eax, dword [esp + 0x14]
cmp eax, dword [edx + 0x1f4]
jne 0x4349e0
cmp byte [esp + 0x3c], 0
je 0x4349e0
mov eax, dword [edx + 0x824]
movzx ecx, bl
shl ecx, 9
add ecx, dword [esp + 0x44]
jmp 0x4349f1
movzx ecx, bl
movzx eax, bh
shl ecx, 8
add ecx, eax
mov eax, dword [edx + 0x828]
movzx ecx, word [eax + ecx*2]
movzx eax, cx
mov dword [esp + 0x38], eax
mov eax, 0x7ff9
movzx ebx, cx
and ecx, 0x7fff
lea ebp, [eax + 6]
cmp cx, ax
jbe 0x434a19
mov eax, ebx
cmp cx, bp
jb 0x434a2b
mov dword [esp + 0x38], 0x7fff
jmp 0x434b77
mov ebp, 0x7fff
movzx ebx, ax
test bx, bx
jns 0x434a91
mov bh, byte [esp + 0x10]
test bh, bh
jne 0x434b6c
cmp word [esi + 4], bp
jne 0x434a4e
mov ax, word [esp + 0x38]
mov word [esi + 4], ax
mov eax, dword fs:[0x2c]
mov eax, dword [eax + edi*4]
cmp byte [eax + 0x2198], 0
jne 0x434a65
call fcn.004ebad3
mov eax, dword fs:[0x2c]
push 0
mov eax, dword [eax + edi*4]
movzx eax, byte [eax + 0x146]
push eax
movzx eax, word [esi + 6]
push eax
call fcn.00439c30
movzx eax, ax
add esp, 0xc
mov dword [esp + 0x38], eax
jmp 0x434b6c
cmp bx, bp
je 0x434b77
mov al, byte [edx + 0x2198]
and ebx, 0x7fff
cmp byte [esp + 0x10], 0
je 0x434b35
test al, al
jne 0x434aba
call fcn.004ebad3
mov eax, dword fs:[0x2c]
mov ecx, dword [eax + edi*4]
mov eax, dword [ecx + 0x884]
cmp bx, word [eax]
jae 0x434b24
mov eax, dword [ecx + 0x820]
cmp word [eax + ebx*2], bp
je 0x434b24
cmp byte [esp + 0x2b], 0
jne 0x434b0b
push dword [esp + 0x4c]
lea eax, [esp + 0x17]
push eax
lea eax, [esi + 0xc]
push eax
push dword [esp + 0x38]
lea eax, [esp + 0x48]
push dword [esp + 0x40]
push eax
call fcn.00438bf0
add esp, 0x18
mov dword [esp + 0x40], eax
test eax, eax
jne 0x434b68
mov eax, dword fs:[0x2c]
mov eax, dword [eax + edi*4]
mov eax, dword [eax + 0x820]
movzx eax, word [eax + ebx*2]
mov dword [esp + 0x38], eax
jmp 0x434b68
cmp byte [esp + 0x2b], 0
je 0x434b68
mov dword [esp + 0x38], 0x7fff
jmp 0x434b7e
test al, al
jne 0x434b3e
call fcn.004ebad3
mov eax, dword fs:[0x2c]
mov edx, dword [eax + edi*4]
mov eax, dword [edx + 0x884]
cmp bx, word [eax]
jae 0x434b68
cmp word [esi + 4], bp
jne 0x434b68
mov eax, dword [edx + 0x820]
mov ecx, ebx
mov ax, word [eax + ecx*2]
mov word [esi + 4], ax
mov bh, byte [esp + 0x10]
cmp word [esp + 0x38], bp
jne 0x434c17
cmp byte [esp + 0x10], 0
je 0x434bac
cmp byte [esi + 8], 0
jne 0x433d55
test byte [esi + 0xc], 1
jne 0x433d55
cmp byte [esi + 9], 0
je 0x433d55
cmp byte [esp + 0x2a], 0
jne 0x433d55
jmp 0x4341bf
cmp word [esi + 4], bp
lea ecx, [esi + 4]
je 0x43414d
mov ebx, dword [esp + 0x2c]
lea eax, [esp + 0x13]
push 0
push eax
lea eax, [esi + 0xc]
push eax
push ebx
push 1
push ecx
call fcn.00438bf0
mov ebp, dword [esp + 0x30]
add esp, 0x18
cmp byte [esp + 0x13], 0
sete al
mov byte [esi + 0x11], al
cmp byte [esp + 0x13], 0
je 0x434bfb
push 0x7fff
push dword [esp + 0x24]
push ebx
push 0
jmp 0x433c27
push 0
push SysReAllocString
push 0x7fff
push dword [esp + 0x2c]
push ebx
push 0
jmp 0x4354e3
mov bh, byte [esp + 0x10]
test byte [esi + 0xc], 8
lea ecx, [esi + 0xc]
mov dword [esp + 0x58], ecx
je 0x434c30
test bh, bh
je 0x434c30
mov byte [esp + 0x13], 1
and byte [ecx], 0xf7
mov eax, dword fs:[0x2c]
mov ebx, dword [esp + 0x38]
and ebx, 0x7fff
mov eax, dword [eax + edi*4]
cmp byte [eax + 0x2198], 0
jne 0x434c54
call fcn.004ebad3
lea ecx, [esi + 0xc]
mov eax, dword fs:[0x2c]
mov ebp, dword [esp + 0x2c]
mov eax, dword [eax + edi*4]
mov eax, dword [eax + 0x884]
cmp bx, word [eax]
jae 0x434d4a
cmp dword [esp + 0x40], 0
jne 0x434d4a
push dword [esp + 0x4c]
mov ebx, dword [esp + 0x34]
lea eax, [esp + 0x17]
push eax
push ecx
push ebp
lea eax, [esp + 0x48]
push ebx
push eax
call fcn.00438bf0
add esp, 0x18
mov dword [esp + 0x40], eax
test eax, eax
jne 0x434d4a
mov eax, dword [esp + 0x4c]
cmp word [eax], 0x69
jne 0x434cbe
push 0x7fff
push dword [esp + 0x24]
push ebp
push ebx
jmp 0x433c23
cmp byte [esp + 0x10], 0
je 0x434ce6
cmp byte [esi + 0x11], 0
je 0x434cae
push 0
push SysReAllocString
push 0x7fff
push dword [esp + 0x2c]
push ebp
mov ebp, dword [esp + 0x2c]
push ebx
jmp 0x4354e3
lea eax, [esi + 4]
mov ecx, 0x7fff
cmp word [eax], cx
jne 0x434d04
push 0x7fff
push dword [esp + 0x24]
push ebp
push 0
jmp 0x433c23
push 0
lea ecx, [esp + 0x17]
mov byte [esp + 0x17], 0
push ecx
lea edi, [esi + 0xc]
push edi
push ebp
push 1
push eax
call fcn.00438bf0
add esp, 0x18
cmp byte [esp + 0x13], 0
jne 0x434cf3
and byte [edi], 0xf7
push 0
push SysReAllocString
push 0x7fff
push dword [esp + 0x2c]
mov byte [esi + 0x11], 1
push ebp
mov ebp, dword [esp + 0x2c]
push 0
jmp 0x4354e3
mov eax, dword fs:[0x2c]
mov ebx, dword [esp + 0x38]
and ebx, 0x7fff
mov eax, dword [eax + edi*4]
cmp byte [eax + 0x2198], 0
jne 0x434d6b
call fcn.004ebad3
mov eax, dword fs:[0x2c]
mov eax, dword [eax + edi*4]
test byte [eax + 0x147], 0xcc
je 0x434ea4
cmp byte [esp + 0x13], 0
jne 0x434ea4
cmp byte [eax + 0x81d], 0
jne 0x434dbc
cmp byte [eax + 0x2198], 0
jne 0x434da3
call fcn.004ebad3
mov eax, dword fs:[0x2c]
mov edx, dword [esp + 0x14]
mov eax, dword [eax + edi*4]
cmp edx, dword [eax + 0x1f0]
jne 0x434ea8
cmp byte [eax + 0x2198], 0
jne 0x434dca
call fcn.004ebad3
mov eax, dword fs:[0x2c]
mov eax, dword [eax + edi*4]
test byte [eax + 0x147], 0xc0
je 0x434dfe
push 0xc0
push ebx
call fcn.00439f30
add esp, 8
test al, al
je 0x434dfe
mov eax, dword fs:[0x2c]
mov eax, dword [eax + edi*4]
mov byte [eax + 0x81e], 1
mov eax, dword fs:[0x2c]
mov eax, dword [eax + edi*4]
cmp byte [eax + 0x81e], 0
jne 0x434ea4
cmp byte [eax + 0x2198], 0
jne 0x434e22
call fcn.004ebad3
mov eax, dword fs:[0x2c]
mov eax, dword [eax + edi*4]
test byte [eax + 0x147], 0xc
je 0x434ea4
cmp byte [eax + 0x2198], 0
jne 0x434e42
call fcn.004ebad3
mov eax, dword fs:[0x2c]
mov eax, dword [eax + edi*4]
test byte [eax + 0x147], 3
jne 0x434ea4
push 0xc
push ebx
call fcn.00439f30
add esp, 8
test al, al
je 0x434ea4
mov eax, dword fs:[0x2c]
mov eax, dword [eax + edi*4]
cmp byte [eax + 0x2198], 0
jne 0x434e7a
call fcn.004ebad3
mov eax, dword fs:[0x2c]
mov eax, dword [eax + edi*4]
cmp dword [eax + 0x1f4], 0
je 0x434e95
mov byte [eax + 0x81e], 1
jmp 0x434ea4
push 0xffc3d44d
push 2
call fcn.0043e210
add esp, 8
mov edx, dword [esp + 0x14]
mov ecx, ebx
lea eax, [ecx - 0x7ffa]
cmp eax, 4
ja case.default.0x434eb9
jmp dword [eax*4 + 0x43553c]
mov eax, dword fs:[0x2c]
mov eax, dword [eax + edi*4]
cmp byte [eax + 0x81c], 0
jne case.0x434eb9.32763
push 0x7fff
push dword [esp + 0x24]
push ebp
push dword [esp + 0x3c]
mov ebp, dword [esp + 0x28]
push dword [esp + 0x2c]
push ebp
push dword [esp + 0x3c]
push dword [esp + 0x15c]
push dword [esp + 0x15c]
push edx
call fcn.0042f9c0
jmp 0x4354f5
mov eax, dword fs:[0x2c]
mov byte [esp + 0x12], 0
mov eax, dword [eax + edi*4]
cmp byte [eax + 0x2198], 0
jne 0x434f22
call fcn.004ebad3
mov eax, dword fs:[0x2c]
mov ecx, dword [eax + edi*4]
test byte [ecx + 0x147], 4
je 0x434f3b
mov edx, 0xa4
jmp 0x434f66
cmp byte [ecx + 0x2198], 0
jne 0x434f49
call fcn.004ebad3
mov eax, dword fs:[0x2c]
movzx edx, byte [esp + 0x12]
mov ecx, dword [eax + edi*4]
mov eax, 0xa5
test byte [ecx + 0x147], 8
cmovne edx, eax
cmp byte [ecx + 0x81c], 0
mov dword [esp + 0x48], edx
je 0x435002
mov eax, 0x7ffb
cmp bx, ax
je case.0x434eb9.32765
push 0xffc3d44d
push 0
test dl, dl
movzx eax, dl
mov ecx, 0x12
push 0
cmovne ecx, eax
mov byte [esp + 0x60], cl
push 0
push dword [esp + 0x64]
push 1
call fcn.0043db20
add esp, 0x18
cmp byte [esi + 8], 0
je 0x434fe4
mov al, byte [esp + 0x11]
cmp al, 0x5b
je 0x434fe4
cmp al, 0x5c
je 0x434fe4
cmp byte [esp + 0x10], 0
mov ebp, dword [esp + 0x18]
jne 0x434fe8
push 0xffc3d44d
push 0
push 0
push 0
push ebp
push 1
call fcn.0043db20
add esp, 0x18
jmp 0x434fe8
mov ebp, dword [esp + 0x18]
mov eax, dword fs:[0x2c]
mov edx, 0x7fff
mov eax, dword [eax + edi*4]
mov byte [eax + 0x81c], 0
jmp 0x4351f8
mov bh, byte [esp + 0x11]
cmp bh, 0xa4
je 0x435015
mov byte [esp + 0x2b], 0
cmp bh, 0xa5
jne 0x43501a
mov byte [esp + 0x2b], 1
cmp bh, 0xa0
je 0x435028
cmp bh, 0xa1
je 0x435028
xor bl, bl
jmp 0x43502a
mov bl, 1
mov byte [esp + 0x37], bl
cmp bh, 0xa2
je 0x43503d
mov byte [esp + 0x12], 0
cmp bh, 0xa3
jne 0x435042
mov byte [esp + 0x12], 1
xor al, al
mov dword [esp + 0x3c], eax
mov byte [esp + 0x44], al
cmp byte [ecx + 0x2198], al
jne 0x435059
call fcn.004ebad3
mov eax, dword fs:[0x2c]
mov edx, dword [eax + edi*4]
test byte [edx + 0x147], 0x10
je 0x435077
mov al, 0xa0
mov dword [esp + 0x3c], eax
mov byte [esp + 0x44], al
jmp 0x4350c1
cmp byte [edx + 0x2198], 0
jne 0x435085
call fcn.004ebad3
mov eax, dword fs:[0x2c]
mov edx, dword [eax + edi*4]
test byte [edx + 0x147], 0x20
je 0x4350a3
mov al, 0xa1
mov dword [esp + 0x3c], eax
mov byte [esp + 0x44], al
jmp 0x4350c1
cmp byte [esp + 0x10], 0
jne 0x4350c1
mov ecx, dword [esp + 0x3c]
test bl, bl
movzx ecx, cl
movzx eax, bh
cmovne ecx, eax
mov dword [esp + 0x3c], ecx
mov byte [esp + 0x44], cl
xor bl, bl
mov byte [esp + 0x40], bl
cmp byte [edx + 0x2198], bl
jne 0x4350d4
call fcn.004ebad3
mov eax, dword fs:[0x2c]
mov eax, dword [eax + edi*4]
test byte [eax + 0x147], 1
je 0x4350ea
mov bl, 0xa2
jmp 0x435125
cmp byte [eax + 0x2198], 0
jne 0x4350f8
call fcn.004ebad3
mov eax, dword fs:[0x2c]
mov eax, dword [eax + edi*4]
test byte [eax + 0x147], 2
je 0x43510e
mov bl, 0xa3
jmp 0x435125
cmp byte [esp + 0x10], 0
jne 0x435129
cmp byte [esp + 0x12], 0
movzx eax, byte [esp + 0x11]
movzx ebx, bl
cmovne ebx, eax
mov byte [esp + 0x40], bl
cmp byte [esp + 0x3c], 0
mov ebp, dword [esp + 0x44]
mov byte [esp + 0x12], 0
je 0x435154
push 0xffc3d44d
push 0
push 0
push 0
push ebp
push 1
call fcn.0043db20
add esp, 0x18
mov byte [esp + 0x12], 1
test bl, bl
je 0x435171
push 0xffc3d44d
push 0
push 0
push 0
push dword [esp + 0x50]
push 1
call fcn.0043db20
add esp, 0x18
cmp byte [esp + 0x2b], 0
je 0x435185
cmp byte [esp + 0x10], 0
jne 0x43518d
mov al, byte [esp + 0x11]
jmp 0x435189
mov eax, dword [esp + 0x48]
test al, al
jne 0x4351a4
push 0xffc3d44d
push 0
push 0
push 0
push 0x12
push 0
call fcn.0043db20
add esp, 0x18
push 0xffc3d44d
push 0
push 0
push 0
push 9
push 2
call fcn.0043db20
add esp, 0x18
cmp byte [esp + 0x12], 0
je 0x4351df
cmp byte [esp + 0x37], 0
jne 0x4351df
push 0xffc3d44d
push 0
push 0
push 0
push ebp
push 0
call fcn.0043db20
add esp, 0x18
mov eax, dword fs:[0x2c]
mov edx, 0x7fff
mov eax, dword [eax + edi*4]
mov byte [eax + 0x81c], 1
mov ebp, dword [esp + 0x18]
mov eax, dword [esp + 0x4c]
mov ecx, 0x68
mov bl, byte [esp + 0x10]
mov word [eax], cx
test bl, bl
je 0x43545e
cmp byte [esp + 0x2a], 0
je 0x4353e5
cmp byte [esi + 9], 0
je 0x4353e5
mov ebp, dword [esp + 0x1c]
mov ebx, dword [esp + 0x18]
push 0xffc3d44e
push 0
push 0
push ebp
push ebx
push 1
call fcn.0043db20
push 0xffc3d44d
push 0
push 0
push ebp
push ebx
push 2
call fcn.0043db20
mov edx, dword [esp + 0x80]
push 0
push SysReAllocString
push edx
jmp 0x4342c1
mov eax, dword fs:[0x2c]
mov eax, dword [eax + edi*4]
cmp byte [eax + 0x81c], 0
jne 0x435286
push 0x7fff
push dword [esp + 0x24]
push ebp
jmp 0x433c1f
cmp byte [esp + 0x10], 0
jne 0x4352bd
mov al, byte [esp + 0x11]
cmp al, 0xa2
je 0x4352a1
cmp al, 0xa3
je 0x4352a1
cmp al, 0xa0
je 0x4352a1
cmp al, 0xa1
jne 0x4352bd
mov ebp, dword [esp + 0x18]
push 0xffc3d44d
push 0
push 0
push 0
push ebp
push 1
call fcn.0043db20
add esp, 0x18
jmp 0x4352c1
mov ebp, dword [esp + 0x18]
mov eax, dword fs:[0x2c]
mov eax, dword [eax + edi*4]
cmp byte [eax + 0x2198], 0
jne 0x4352d8
call fcn.004ebad3
mov eax, dword fs:[0x2c]
mov eax, dword [eax + edi*4]
test byte [eax + 0x147], 0xc
je 0x4352fd
cmp byte [esp + 0x10], 0
je 0x435314
mov al, byte [esp + 0x11]
cmp al, 0xa4
je 0x4352fd
cmp al, 0xa5
jne 0x435314
push 0xffc3d44d
push 0
push 0
push 0
push 0x12
push 0
call fcn.0043db20
add esp, 0x18
mov eax, 0x7ffd
cmp bx, ax
jne 0x435390
mov eax, dword fs:[0x2c]
mov eax, dword [eax + edi*4]
cmp byte [eax + 0x2198], 0
jne 0x435335
call fcn.004ebad3
mov eax, dword fs:[0x2c]
mov eax, dword [eax + edi*4]
test byte [eax + 0x147], 0x30
jne 0x435390
push 0xffc3d44d
push 0
push 0
push 0
push 0x10
push 0
call fcn.0043db20
push 0xffc3d44d
push 0
push 0
push 0
push 9
push 2
call fcn.0043db20
push 0xffc3d44d
push 0
push 0
push 0
push 0x10
push 1
call fcn.0043db20
add esp, 0x48
mov edx, 0x7fff
jmp 0x4351f8
push 0xffc3d44d
push 0
push 0
push 0
push 9
push 2
call fcn.0043db20
add esp, 0x18
mov edx, 0x7fff
jmp 0x4351f8
mov edx, ecx
mov ecx, dword [esp + 0x40]
mov dword [esp + 0x50], edx
mov eax, dword [ecx + 8]
test eax, eax
je 0x4351f4
cmp byte [eax], 5
mov ebp, dword [esp + 0x18]
jne 0x4351f8
movzx eax, word [ecx + 0x18]
shl eax, 0x10
or edx, eax
mov dword [esp + 0x50], edx
jmp 0x4351f8
cmp byte [esi + 8], 0
je 0x4353fa
cmp byte [esi + 0x11], 0
je 0x43548d
jmp 0x4354cf
cmp byte [esp + 0x13], 0
je 0x4354cb
mov ecx, dword fs:[0x2c]
mov eax, dword [ecx + edi*4]
cmp byte [eax + 0x2198], 0
jne 0x435424
call fcn.004ebad3
mov ecx, dword fs:[0x2c]
mov edx, dword [esp + 0x50]
mov eax, dword [ecx + edi*4]
mov ecx, dword [esp + 0x14]
push edx
push dword [esp + 0x24]
push dword [esp + 0x34]
push dword [esp + 0x3c]
push dword [esp + 0x2c]
push ebp
push dword [esp + 0x3c]
push dword [esp + 0x15c]
push dword [esp + 0x15c]
push ecx
call fcn.0042f9c0
jmp 0x4354f5
mov byte [esi + 0x10], 1
mov eax, dword fs:[0x2c]
mov eax, dword [eax + edi*4]
mov eax, dword [eax + 0x810]
test eax, eax
je 0x43547f
cmp byte [eax + 8], 0
je 0x43547f
mov byte [eax + 0x12], 2
cmp byte [esp + 0x13], 0
je 0x43549f
mov edi, dword [esp + 0x58]
or byte [edi], 8
push edx
push dword [esp + 0x24]
push dword [esp + 0x34]
push dword [esp + 0x3c]
jmp 0x433c27
mov al, byte [esp + 0x11]
cmp al, 0xa4
je 0x4354ab
cmp al, 0xa5
jne 0x4354c3
push 0xffc3d450
push 0
push 0
push dword [esp + 0x28]
push ebp
push 1
call fcn.0043db20
add esp, 0x18
test bl, bl
jne 0x4354cb
mov byte [esi + 0x11], 1
mov edx, dword [esp + 0x50]
push 0
push SysReAllocString
push edx
push dword [esp + 0x2c]
push dword [esp + 0x3c]
push dword [esp + 0x44]
push dword [esp + 0x34]
push ebp
push dword [esp + 0x44]
push dword [esp + 0x38]
call fcn.00436160
add esp, 0x28
mov ecx, dword [esp + 0x130]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.004ebadf
add esp, 0x124
ret