Function at 0x46b1d0
Capabilities:
Extract resource via kernel32 functions
Get keyboard layout

Disassembly:
push 0xffffffffffffffff
push 0x4cd2d5
mov eax, dword fs:[0]
push eax
mov eax, 0xe2f8
mov dword fs:[0], esp
call fcn.004c6f60
mov eax, dword [esp + 0xe30c]
push ebx
push ebp
xor ebx, ebx
push esi
push edi
cmp eax, ebx
je 0x46e4e1
cmp byte [eax], bl
je 0x46e4e1
mov eax, dword [0x4f1bf0]
mov dword [esp + 0xec], eax
mov dword [0x4f3ca4], eax
cmp eax, ebx
jne 0x46b234
mov eax, dword [esp + 0xe318]
mov ecx, dword [eax + 0x5fc]
mov dword [0x4f04c8], ecx
lea edx, [esp + 0x62f4]
lea eax, [esp + 0xa2fc]
lea esi, [esp + 0x40]
mov byte [esp + 0x3ac], bl
mov dword [esp + 0x14], edx
mov dword [esp + 0x80], eax
call fcn.0041bbb0
lea esi, [esp + 0x84]
mov dword [esp + 0xe310], ebx
call fcn.0046a710
mov dword [esp + 0xfc], ebx
mov dword [esp + 0x100], ebx
mov byte [esp + 0x104], 0
mov word [esp + 0x11c], 0
mov dword [esp + 0x120], ebx
mov dword [esp + 0x124], ebx
mov dword [esp + 0x128], ebx
mov dword [esp + 0x12c], ebx
mov dword [esp + 0x28], ebx
mov dword [esp + 0x24], ebx
mov dword [esp + 0x20], ebx
push 0xa
push str.QVXNDFT6QO3
mov byte [esp + 0xe318], 2
mov edi, dword [sym.imp.KERNEL32.dll_FindResourceA]
push ebx
mov byte [esp + 0x26], 0
xor ebp, ebp
call edi
push 0xa
push str.O5L9856L16C306EW5IVREMX5
push ebx
call edi
mov esi, eax
cmp esi, ebx
jne 0x46b30a
push 2
push str.WC49QXQ55GXURYU7N6XM
push ebx
call edi
mov esi, eax
cmp esi, ebx
je 0x46b2fe
mov ebp, 1
jmp 0x46b30a
push 0xa
push str.158UX903ZMGOW28FHGTJ
push ebx
call edi
mov esi, eax
cmp dword [0x4f33d0], ebx
je 0x46b3ad
mov eax, dword [0x4f0bd0]
mov edx, dword [0x4f33e4]
lea ecx, [esp + 0x40]
push 0x30c
mov dword [esp + 0xdc], ecx
call fcn.0049c780
test al, al
jne 0x46b57d
mov edx, dword [0x4f33e4]
push edx
push str.u_q__9_e_8__2d:i334f
call fcn.0049be50
add esp, 4
push eax
mov esi, 0x204
lea edi, [esp + 0x1ac]
call fcn.004a2f10
add esp, 8
push 0x4d6959
mov eax, edi
mov ecx, dword [esp + 0xe31c]
push eax
call fcn.00473b40
lea ecx, [esp + 0x20]
mov esi, eax
call fcn.004138f0
lea ecx, [esp + 0x84]
call fcn.0046a770
lea ecx, [esp + 0x40]
mov dword [esp + 0xe310], 0xffffffff
call fcn.0041bc00
mov eax, esi
jmp 0x46e4e3
cmp ebp, ebx
je 0x46b45f
mov dword [esp + 0xd8], ebx
cmp esi, ebx
je 0x46b3e7
push esi
push ebx
call dword [sym.imp.KERNEL32.dll_LoadResource]
cmp eax, ebx
je 0x46b3e7
push eax
call dword [sym.imp.KERNEL32.dll_LockResource]
mov edi, eax
mov dword [esp + 0xfc], edi
cmp edi, ebx
je 0x46b3ee
mov byte [esp + 0x1a], 1
jmp 0x46b3f3
mov edi, dword [esp + 0x114]
mov byte [esp + 0x1a], 0
push esi
push ebx
call dword [sym.imp.KERNEL32.dll_SizeofResource]
cmp byte [esp + 0x1a], 0
mov dword [esp + 0x100], eax
je 0x46b424
lea ecx, [esp + 0xd8]
push ecx
mov ebx, edi
mov eax, 0x4f33c4
call fcn.00495ef0
add esp, 4
test al, al
jne 0x46b442
fldz
mov edx, dword [esp + 0xe31c]
sub esp, 8
fstp qword [esp]
push 0
push edx
push 0
push 0x4e2cc8
jmp 0x46e4a7
mov eax, dword [esp + 0xd8]
mov ecx, dword [0x4f33c8]
mov dword [esp + 0x100], eax
mov dword [esp + 0xfc], ecx
jmp 0x46b4a4
cmp esi, ebx
je 0x46e490
push esi
push ebx
call dword [sym.imp.KERNEL32.dll_SizeofResource]
mov dword [esp + 0x100], eax
cmp eax, ebx
je 0x46e490
push esi
push ebx
call dword [sym.imp.KERNEL32.dll_LoadResource]
cmp eax, ebx
je 0x46e490
push eax
call dword [sym.imp.KERNEL32.dll_LockResource]
mov dword [esp + 0xfc], eax
cmp eax, ebx
je 0x46e48e
lea edx, [esp + 0x84]
mov dword [esp + 0xd8], edx
push 0xc
mov eax, 0xfde9
lea edx, [esp + 0x100]
lea ecx, [esp + 0x88]
call fcn.0049c780
xor edi, edi
push str.u_q__9_ec_ll__6_c46c_84__1c
mov dword [esp + 0x150], edi
mov dword [esp + 0x154], edi
mov dword [esp + 0x158], edi
mov dword [esp + 0x15c], edi
mov byte [esp + 0x160], 0
mov dword [esp + 0x164], edi
call fcn.0049be50
mov ecx, dword [esp + 0x104]
mov edx, dword [esp + 0x100]
add esp, 4
mov esi, eax
lea eax, [esp + 0x14c]
push eax
push esi
push ecx
push edx
push 4
push edi
push edi
push edi
call fcn.00474fb0
add esp, 0x20
test al, al
jne 0x46b549
fldz
mov eax, dword [esp + 0xe31c]
sub esp, 8
fstp qword [esp]
push edi
push eax
push edi
jmp 0x46e4a2
mov ecx, dword [esp + 0xfc]
mov edx, dword [esp + 0x100]
mov byte [esp + 0x1a], 1
mov dword [esp + 0x124], ecx
mov dword [esp + 0x120], esi
mov word [esp + 0x11c], 0x101
mov dword [esp + 0x128], edx
xor ebx, ebx
mov eax, dword [esp + 0xec]
mov esi, dword [esp + 0xe318]
inc dword [0x4f1bf0]
movzx ecx, byte [esp + 0x1a]
mov edx, dword [esp + 0xd8]
mov dword [esi + 0x16c], eax
mov edi, dword [0x4f33d0]
neg edi
sbb edi, edi
neg edi
dec edi
neg ecx
mov dword [0x4f3ca4], eax
push edx
sbb ecx, ecx
lea eax, [esp + 0x120]
and ecx, eax
push ebx
lea edx, [esp + 0x62fc]
mov byte [esp + 0x21], 0
mov byte [esp + 0x41], 0
mov byte [esp + 0x46], 0
mov dword [esp + 0xec], edi
call fcn.0046e750
push 2
mov dword [esp + 0x20], eax
lea eax, [esp + 0x62f8]
push 0x4e2d48
push eax
call fcn.004bc8b3
add esp, 0xc
test eax, eax
sete al
mov byte [esp + 0x2c], al
test al, al
je 0x46b61a
mov byte [esp + 0x62f4], 0
mov dword [esp + 0x1c], ebx
or ebp, 0xffffffff
lea ecx, [ecx]
cmp dword [esp + 0x1c], ebp
je 0x46e374
inc edi
push str.s_v__01_a5__
mov dword [esi + 0x170], edi
mov dword [esi + 0x370], ebx
call fcn.0049be50
mov edi, dword [esp + 0x18]
add esp, 4
push 0xc
push eax
push edi
call fcn.004babb4
add esp, 0xc
test eax, eax
jne 0x46b667
push edi
push esi
call fcn.0046ea40
test eax, eax
je 0x46d618
mov byte [esp + 0x110], 0
mov dword [esp + 0x30], ebx
inc dword [esp + 0xe4]
cmp dword [0x4f33d0], 0
je 0x46b69d
mov ecx, dword [esp + 0xe318]
cmp dword [ecx + 0x16c], 0xffffffff
je 0x46b69d
mov dword [0x4f3ca8], 0
mov ebx, dword [esp + 0x80]
mov esi, dword [esp + 0x30]
test ebx, ebx
je 0x46b742
movzx ecx, byte [esp + 0x1a]
mov eax, dword [esp + 0xd8]
neg ecx
sbb ecx, ecx
lea edx, [esp + 0x11c]
push eax
and ecx, edx
push esi
mov edx, ebx
call fcn.0046e750
mov ebp, eax
mov dword [esp + 0xe0], ebp
test ebp, ebp
je 0x46b74c
cmp ebp, 0xffffffff
je 0x46b74c
test esi, esi
jne 0x46b74c
push 2
push 0x4e2d64
push ebx
call fcn.004bc8b3
add esp, 0xc
test eax, eax
jne 0x46b761
cmp byte [esp + 0x2c], al
jne 0x46b70e
cmp byte [ebx + 2], 0x3a
jne 0x46b70e
cmp byte [ebx + 3], 0x3a
je 0x46b76c
lea ecx, [ebp - 1]
push ecx
lea edx, [ebx + 2]
push edx
push ebx
mov byte [esp + 0x38], 0
call fcn.004bad10
add esp, 0xc
lea eax, [ebp - 2]
mov edi, ebx
call fcn.0042ec60
cmp byte [ebx], 0
mov ebp, eax
mov dword [esp + 0xe0], ebp
je 0x46b673
jmp 0x46b76c
or ebp, 0xffffffff
mov dword [esp + 0xe0], ebp
cmp byte [esp + 0x2c], 0
je 0x46b78a
cmp ebp, 0xffffffff
jne 0x46b673
jmp 0x46be11
cmp byte [esp + 0x2c], 0
jne 0x46b673
push 2
push 0x4e2d48
push ebx
call fcn.004bc8b3
add esp, 0xc
test eax, eax
jne 0x46b74c
mov byte [esp + 0x2c], 1
jmp 0x46b673
test esi, esi
jne 0x46bc49
cmp ebp, 0xffffffff
je 0x46b802
cmp byte [ebx], 0x28
jne 0x46b802
cmp byte [ebx + 1], 0x3a
lea esi, [ebx + 1]
je 0x46b802
cmp byte [ebx + ebp - 1], 0x3a
je 0x46b802
mov dl, byte [0x4f13d6]
mov ecx, 1
mov dword [esp + 0x30], ecx
mov dword [esp + 0x118], 0
mov byte [esp + 0x7d], dl
mov byte [esp + 0x7f], cl
mov byte [esp + 0x7c], 0
mov byte [esp + 0x7e], 0
mov byte [esp + 0x7a], cl
mov word [esp + 0x13c], 0xa
mov dword [esp + 0x108], ecx
lea ecx, [ecx]
mov al, byte [esi]
cmp al, 0x20
je 0x46b7fe
cmp al, 9
jne 0x46ba46
add esi, ecx
jmp 0x46b7f0
mov dword [esp + 0x30], 0
cmp ebp, 0xffffffff
je 0x46be11
test ebp, ebp
je 0x46b673
cmp byte [ebx + ebp - 1], 0x3a
jne 0x46b82b
cmp byte [ebx], 0x2c
jne 0x46be11
mov al, byte [ebx]
call fcn.004099b0
cmp al, 0x41
je 0x46b9ad
cmp al, 0x4f
je 0x46b97a
mov al, byte [ebx]
cmp al, 0x3a
je 0x46b850
cmp al, 0x2b
je 0x46b850
cmp al, 0x2d
jne 0x46b859
cmp byte [ebx + 1], al
je 0x46be11
movsx eax, al
push eax
push str.____:.___
call fcn.004bb121
add esp, 8
test eax, eax
je 0x46be11
push 0x4e2d8c
push ebx
call fcn.004bb262
mov edi, eax
add esp, 8
test edi, edi
je 0x46ba06
cmp byte [ebx], 0x3a
jne 0x46b8d5
mov al, byte [ebx + 1]
lea esi, [ebx + 1]
test al, al
je 0x46b8cc
cmp al, 0x3a
je 0x46be11
mov ecx, 0x107
call fcn.00409990
test eax, eax
jne 0x46b8c4
movsx eax, byte [esi]
push eax
push str.____t
call fcn.004bb121
add esp, 8
test eax, eax
je 0x46b8d5
mov al, byte [esi + 1]
inc esi
test al, al
jne 0x46b899
cmp byte [esi], 0x3a
je 0x46be11
mov ebx, dword [esp + 0x80]
cmp byte [ebx], 0x2c
jne 0x46b92e
lea esi, [ebx + 1]
mov al, byte [esi]
cmp al, 0x20
je 0x46b8ee
cmp al, 9
jne 0x46b8f1
inc esi
jmp 0x46b8e4
push 2
push 0x4e2d8c
push esi
call fcn.004bc8b3
add esp, 0xc
test eax, eax
je 0x46be11
push 3
push 0x4d9550
dec esi
push esi
call fcn.004bc8b3
add esp, 0xc
test eax, eax
je 0x46be11
mov ebp, dword [esp + 0xe0]
jmp 0x46ba06
mov eax, ebx
cmp ebx, edi
jae 0x46b93e
cmp byte [eax], 0x22
je 0x46b93e
inc eax
cmp eax, edi
jb 0x46b934
cmp eax, edi
je 0x46be11
mov al, byte [edi + 2]
lea ecx, [edi + 2]
test al, al
je 0x46be11
cmp al, 0x22
je 0x46b965
mov al, byte [ecx + 1]
inc ecx
test al, al
jne 0x46b954
jmp 0x46be11
cmp byte [ecx], 0
je 0x46be11
mov ebp, dword [esp + 0xe0]
jmp 0x46ba06
mov al, byte [ebx + 1]
call fcn.004099b0
cmp al, 0x52
jne 0x46be11
mov al, byte [ebx + 2]
lea ecx, [ebx + 2]
cmp al, 0x20
je 0x46b9a0
cmp al, 9
je 0x46b9a0
cmp al, 0xa0
jne 0x46be11
mov al, byte [ecx]
cmp al, 0x20
je 0x46b9aa
cmp al, 9
jne 0x46b9ed
inc ecx
jmp 0x46b9a0
push 3
push 0x4e2d68
push ebx
call fcn.004babb4
add esp, 0xc
test eax, eax
jne 0x46be11
mov al, byte [ebx + 3]
lea ecx, [ebx + 3]
cmp al, 0x20
je 0x46b9e0
cmp al, 9
je 0x46b9e0
cmp al, 0xa0
jne 0x46be11
jmp 0x46b9e0
mov al, byte [ecx]
cmp al, 0x20
je 0x46b9ea
cmp al, 9
jne 0x46b9ed
inc ecx
jmp 0x46b9e0
movsx eax, byte [ecx]
push eax
push str.____:
call fcn.004bb121
add esp, 8
test eax, eax
jne 0x46be11
mov esi, dword [esp + 0x1c]
lea eax, [esi + ebp]
cmp eax, 0x4000
jae 0x46d650
cmp byte [ebx], 0x2c
je 0x46ba26
mov ecx, dword [esp + 0x14]
mov byte [esi + ecx], 0x20
inc esi
mov eax, dword [esp + 0x14]
lea edx, [ebp + 1]
push edx
lea ecx, [esi + eax]
push ebx
push ecx
call fcn.004c3030
add esp, 0xc
add esi, ebp
mov dword [esp + 0x1c], esi
jmp 0x46b673
cmp byte [esi], 0
je 0x46bc3c
mov edi, esi
test esi, esi
je 0x46ba7f
mov dl, byte [esi]
test dl, dl
je 0x46ba7f
jmp 0x46ba60
mov ecx, 0x4d9558
mov al, 0x20
cmp dl, al
je 0x46bb1f
mov al, byte [ecx + 1]
inc ecx
test al, al
jne 0x46ba67
mov dl, byte [edi + 1]
inc edi
test dl, dl
jne 0x46ba60
mov eax, esi
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x46ba84
sub eax, edx
lea ebp, [eax + esi]
mov bl, byte [ebp]
push str.J8_
mov byte [esp + 0x3b], bl
mov byte [ebp], 0
call fcn.0049be50
add esp, 4
push 4
push eax
push esi
call fcn.004babb4
add esp, 0xc
test eax, eax
jne 0x46bb8c
push 0xf
add esi, 4
lea eax, [esp + 0x140]
push esi
push eax
call fcn.004bd1c0
mov bl, byte [0x4ec3d3]
mov byte [esp + 0x157], 0
lea ecx, [esp + 0x148]
mov al, byte [ecx]
add esp, 0xc
test al, al
je 0x46bafc
lea ecx, [ecx]
cmp al, bl
je 0x46bb26
mov al, byte [ecx + 1]
inc ecx
test al, al
jne 0x46baf0
lea eax, [esp + 0x13c]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x46bb06
mov bl, byte [esp + 0x37]
sub eax, edx
mov dword [esp + 0x108], eax
jmp 0x46bc21
mov ebp, edi
jmp 0x46ba90
cmp byte [ecx], 0
je 0x46bafc
movsx eax, byte [ecx + 1]
lea esi, [ecx + 1]
add eax, 0xffffff9f
cmp eax, 0x15
ja case.0x46bb41.99
movzx edx, byte [eax + 0x46e524]
jmp dword [edx*4 + 0x46e500]
mov byte [esi], 7
jmp case.0x46bb41.99
mov byte [esi], 8
jmp case.0x46bb41.99
mov byte [esi], 0xc
jmp case.0x46bb41.99
mov byte [esi], 0xa
jmp case.0x46bb41.99
mov byte [esi], 0xd
jmp case.0x46bb41.99
mov byte [esi], 9
jmp case.0x46bb41.99
mov byte [esi], 0xb
jmp case.0x46bb41.99
mov byte [esi], 0x20
mov eax, esi
lea edi, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x46bb73
sub eax, edi
inc eax
push eax
push esi
push ecx
call fcn.004bad10
mov ecx, esi
jmp 0x46bae4
push 0x4db2b4
call fcn.0049be50
add esp, 4
push 5
push eax
push esi
call fcn.004babb4
add esp, 0xc
test eax, eax
jne 0x46bbb4
cmp byte [esi + 5], 0x30
setne byte [esp + 0x7d]
jmp 0x46bc21
push 0x4db2c4
call fcn.0049be50
add esp, 4
push 5
push eax
push esi
call fcn.004babb4
add esp, 0xc
test eax, eax
jne 0x46bbdc
cmp byte [esi + 5], 0x30
setne byte [esp + 0x7f]
jmp 0x46bc21
mov al, byte [esi]
test al, al
je 0x46bc21
mov ecx, 2
movsx eax, al
add eax, 0xffffffdb
cmp eax, 0x3e
ja case.0x46bbf9.38
movzx eax, byte [eax + 0x46e554]
jmp dword [eax*4 + 0x46e53c]
mov byte [esp + 0x7c], 1
jmp case.0x46bbf9.38
mov byte [esp + 0x7e], 1
jmp case.0x46bbf9.38
mov byte [esp + 0x7a], 0
jmp case.0x46bbf9.38
mov dword [esp + 0x30], ecx
mov al, byte [esi + 1]
inc esi
test al, al
jne 0x46bbe7
mov byte [ebp], bl
mov esi, ebp
mov al, byte [esi]
cmp al, 0x20
je 0x46bc30
cmp al, 9
jne 0x46bc33
inc esi
jmp 0x46bc26
cmp byte [esi], 0
jne 0x46ba4f
mov byte [esp + 0x110], 1
jmp 0x46b673
cmp ebp, 0xffffffff
je 0x46e2c4
cmp ebp, 0xfffffffe
je 0x46b673
cmp byte [ebx], 0x29
jne 0x46bc84
mov esi, dword [esp + 0x80]
or eax, 0xffffffff
mov dword [esp + 0x30], 0
lea ebx, [esi + 1]
call fcn.0041a3c0
lea ebp, [eax - 1]
mov edi, esi
jmp 0x46bd8b
cmp byte [esp + 0x7f], 0
mov edi, dword [esp + 0x80]
mov ebx, edi
je 0x46bc9f
mov eax, ebp
mov esi, edi
call fcn.0041a3c0
mov ebp, eax
cmp byte [esp + 0x7d], 0
je 0x46bcb6
mov edi, dword [esp + 0x80]
mov eax, ebp
call fcn.0042ec60
mov ebp, eax
xor esi, esi
cmp byte [esp + 0x7c], 0
je 0x46bcf1
mov al, byte [0x4ec3d3]
push esi
push 0xffffffffffffffff
push 1
lea ecx, [esp + 0x48]
push ecx
lea edx, [esp + 0x48]
push edx
mov byte [esp + 0x4c], al
mov byte [esp + 0x50], al
mov byte [esp + 0x51], al
push edi
xor eax, eax
mov ecx, 0x4001
call fcn.004a36d0
add esp, 0x18
mov esi, eax
cmp byte [esp + 0x7e], 0
je 0x46bd31
mov al, byte [0x4ec3d2]
mov cl, byte [0x4ec3d3]
push 0
push 0xffffffffffffffff
push 1
mov byte [esp + 0x44], al
mov byte [esp + 0x49], al
lea edx, [esp + 0x48]
push edx
lea eax, [esp + 0x48]
push eax
mov byte [esp + 0x50], cl
push edi
xor eax, eax
mov ecx, 0x4001
call fcn.004a36d0
add esp, 0x18
add esi, eax
cmp byte [esp + 0x7a], 0
je 0x46bd71
mov al, byte [str.___0123456789ABCDEF]
mov cl, byte [0x4ec3d3]
push 0
push 0xffffffffffffffff
push 1
mov byte [esp + 0x44], al
mov byte [esp + 0x49], al
lea edx, [esp + 0x48]
push edx
lea eax, [esp + 0x48]
push eax
mov byte [esp + 0x50], cl
push edi
xor eax, eax
mov ecx, 0x4001
call fcn.004a36d0
add esp, 0x18
add esi, eax
test esi, esi
je 0x46bd8b
mov eax, edi
lea edx, [eax + 1]
lea ebx, [ebx]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x46bd80
sub eax, edx
mov ebp, eax
mov esi, dword [esp + 0x108]
mov eax, dword [esp + 0x1c]
lea ecx, [esi + ebp]
add ecx, eax
cmp ecx, 0x4001
jae 0x46d650
mov ecx, dword [esp + 0x118]
inc ecx
mov dword [esp + 0x118], ecx
cmp ecx, 1
jle 0x46bde2
test esi, esi
je 0x46bde2
cmp ebx, edi
jne 0x46bde2
lea edx, [esi + 1]
push edx
mov edx, dword [esp + 0x18]
lea ecx, [esp + 0x140]
push ecx
add eax, edx
push eax
call fcn.004c3030
add esp, 0xc
add dword [esp + 0x1c], esi
test ebp, ebp
je 0x46b673
mov ecx, dword [esp + 0x14]
mov esi, dword [esp + 0x1c]
lea eax, [ebp + 1]
push eax
lea edx, [esi + ecx]
push ebx
push edx
call fcn.004c3030
add esp, 0xc
add esi, ebp
mov dword [esp + 0x1c], esi
jmp 0x46b673
mov byte [ebp], bl
mov esi, dword [esp + 0xe318]
mov ebp, dword [esp + 0xd4]
cmp dword [esp + 0x1c], 0
mov ecx, dword [0x4ec48c]
lea ebx, [ebx]
je 0x46d385
cmp byte [esp + 0x3ac], 0
je 0x46bff0
mov eax, dword [esp + 0xdc]
mov edi, dword [esi + 0x170]
mov edx, dword [esp + 0x14]
mov bl, byte [esp + 0x1b]
mov dword [esi + 0x170], eax
cmp byte [edx], 0x7b
je 0x46bede
test bl, bl
jne 0x46bede
test ebp, ebp
jne 0x46d663
cmp dword [esi + 0x48], ebp
je 0x46be81
cmp dword [ecx + 0x94], ebp
je 0x46d716
cmp dword [0x4f33d0], 0
je 0x46be92
lea eax, [edi - 1]
mov dword [0x4f3ca8], eax
push 0
push 0
push 0
push 0
push 0
push 3
lea ecx, [esp + 0x3c4]
push ecx
mov ecx, esi
call fcn.00470380
test eax, eax
jne 0x46bf81
mov esi, dword [esp + 0x24]
test esi, esi
je 0x46e4c1
mov edx, dword [esp + 0x20]
push edx
push eax
push esi
call fcn.004c16a0
add esp, 0xc
push esi
call fcn.004ba14c
add esp, 4
jmp 0x46e4c1
mov eax, ebp
sub eax, 0
je 0x46bf3c
dec eax
je 0x46bf14
dec eax
jne 0x46bf8b
mov edx, dword [esp + 0xe318]
push edx
lea esi, [esp + 0x3b0]
call fcn.0041e910
test eax, eax
je 0x46d2bc
mov esi, dword [esp + 0xe318]
jmp 0x46bf8b
lea eax, [esp + 0x3ac]
push eax
push esi
call fcn.0041e430
test eax, eax
jne 0x46bf8b
mov esi, dword [esp + 0x24]
test esi, esi
je 0x46d2dd
mov ecx, dword [esp + 0x20]
push ecx
jmp 0x46d2c9
cmp dword [ecx + 0x94], 0
lea edx, [esp + 0x3ac]
jne 0x46d753
lea ecx, [esp + 0x43b4]
push ecx
push edx
push esi
call fcn.0041da40
test eax, eax
je 0x46d7ff
test bl, bl
je 0x46bf8b
push 0
push 0
push 0
push 0x73
push esi
call fcn.004725b0
test eax, eax
je 0x46e4b8
mov dword [esi + 0x370], 0
mov byte [esp + 0x3ac], 0
test ebp, ebp
je 0x46bfe4
test bl, bl
jne 0x46bfe4
mov ecx, dword [esp + 0x14]
mov al, byte [ecx + 1]
inc ecx
cmp al, 0x20
je 0x46bf9f
cmp al, 9
je 0x46bf9f
test al, al
jne 0x46bfba
mov dword [esi + 0x170], edi
jmp 0x46d385
mov eax, ecx
lea esi, [eax + 1]
nop
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x46bfc0
sub eax, esi
mov dword [esp + 0x1c], eax
inc eax
push eax
mov eax, dword [esp + 0x18]
push ecx
push eax
call fcn.004bad10
mov esi, dword [esp + 0xe324]
add esp, 0xc
mov ecx, dword [0x4ec48c]
mov dword [esi + 0x170], edi
mov edx, dword [esp + 0x14]
cmp byte [edx], 0x7d
jne 0x46c0d5
mov eax, dword [esi + 0x48]
test eax, eax
je 0x46c0d5
cmp dword [ecx + 0x94], 0
jne 0x46c0d5
cmp dword [esi + 0x164], 0
je 0x46c04e
mov eax, dword [esi + 0x168]
mov dword [esi + 0x164], 0
test eax, eax
je 0x46c08b
push eax
call fcn.004ba14c
mov eax, dword [esp + 0xe31c]
add esp, 4
mov dword [eax + 0x168], 0
jmp 0x46c08b
mov esi, dword [esp + 0xe318]
dec eax
mov dword [esi + 0x48], eax
mov edi, dword [esi + eax*4 + 0x4c]
call fcn.00497620
mov ecx, dword [esi + 0x48]
mov eax, dword [esi + ecx*4 + 0x4c]
mov edx, dword [eax]
push eax
mov eax, dword [edx + 8]
call eax
add esi, 0x60
push 0x2e
push esi
call fcn.004bc514
add esp, 8
test eax, eax
je 0x46c088
mov byte [eax], 0
jmp 0x46c08b
mov byte [esi], 0
mov eax, dword [esp + 0x14]
mov cl, byte [eax + 1]
inc eax
cmp cl, 0x20
je 0x46c08f
cmp cl, 9
je 0x46c08f
mov dword [esp + 0x14], eax
test cl, cl
je case.0x46cad3.14
lea edx, [eax + 1]
lea esp, [esp]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x46c0b0
mov ecx, dword [esp + 0xe318]
sub eax, edx
mov dword [esp + 0x1c], eax
mov dword [ecx + 0x370], 0
mov esi, ecx
jmp 0x46be1f
cmp dword [esi + 0x164], 0
je 0x46c1a9
cmp dword [ecx + 0x94], 0
jne 0x46c1a9
mov esi, dword [esp + 0x14]
push 3
push 0x4db228
push esi
call fcn.004babb4
add esp, 0xc
test eax, eax
je 0x46c11f
push 3
push 0x4e2e10
push esi
call fcn.004babb4
add esp, 0xc
test eax, eax
jne 0x46d829
mov ebx, dword [esp + 0x14]
lea esi, [ebx + 3]
mov al, byte [esi]
cmp al, 0x20
je 0x46c130
cmp al, 9
jne 0x46c133
inc esi
jmp 0x46c126
mov al, byte [esi]
test al, al
je 0x46c14b
cmp al, 0x7b
jne 0x46d82d
cmp byte [esi + 1], 0
jne 0x46d82d
mov edi, dword [esp + 0xe318]
mov eax, dword [edi + 0x168]
lea edx, [esp + 0x3ac]
sub edx, eax
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x46c161
lea edx, [esp + 0x3ac]
push 0x2e
push edx
call fcn.004bb121
mov cl, byte [ebx]
mov byte [eax + 1], cl
mov edx, dword [edi + 0x170]
add esp, 8
cmp byte [esi], 0x7b
mov dword [esp + 0xdc], edx
sete byte [esp + 0x1b]
mov dword [esp + 0xd4], 0
mov esi, edi
jmp 0x46d385
mov edi, dword [esp + 0x14]
lea eax, [esp + 0x1b]
push eax
mov eax, edi
call fcn.0041d0b0
add esp, 4
test al, al
je 0x46c1f7
lea edx, [esp + 0x3ac]
mov eax, edi
sub edx, edi
jmp 0x46c1d0
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x46c1d0
mov ecx, dword [esi + 0x170]
mov dword [esp + 0xdc], ecx
mov dword [esp + 0xd4], 0
jmp 0x46d385
mov edx, dword [0x4ec48c]
cmp dword [edx + 0x94], 0
jne 0x46c3c3
lea eax, [esp + 0x1b]
push eax
mov eax, edi
call fcn.0046ad60
add esp, 4
test eax, eax
je 0x46c24d
lea edx, [esp + 0x3ac]
sub edx, eax
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x46c226
mov ecx, dword [esi + 0x170]
mov dword [esp + 0xdc], ecx
mov dword [esp + 0xd4], 1
jmp 0x46d385
cmp dword [esi + 0x48], 0
je 0x46c3c3
mov ebx, dword [esp + 0x14]
mov esi, ebx
lea ecx, [ecx]
movzx eax, byte [esi]
test eax, 0xffffff80
jne 0x46c27c
push 0x107
push eax
call fcn.004bb66e
add esp, 8
test eax, eax
jne 0x46c28a
mov al, byte [esi]
cmp al, 0x5f
je 0x46c28a
cmp al, 0x7f
ja 0x46c28a
cmp al, 0x2e
jne 0x46c28d
inc esi
jmp 0x46c260
cmp esi, ebx
jbe 0x46c340
mov al, byte [esi]
cmp al, 0x20
je 0x46c29f
cmp al, 9
jne 0x46c2a2
inc esi
jmp 0x46c295
mov al, byte [esi]
cmp al, 0x3a
jne 0x46c2cb
cmp byte [esi + 1], 0x3d
jne 0x46c2cb
push 0
mov edx, dword [esp + 0xe31c]
push ebx
push edx
call fcn.0041eab0
test eax, eax
je 0x46e4b8
jmp case.0x46cad3.14
test al, al
je 0x46c2dd
cmp al, 0x5b
je 0x46c2dd
cmp al, 0x7b
jne 0x46c340
cmp byte [esi + 1], 0
jne 0x46c340
mov eax, ebx
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x46c2e2
sub eax, edx
cmp byte [eax + ebx - 1], 0x7b
sete cl
mov byte [esp + 0x1b], cl
test cl, cl
je 0x46c303
dec eax
mov esi, ebx
call fcn.0041a3c0
lea edx, [esp + 0x3ac]
mov eax, ebx
sub edx, ebx
mov edi, edi
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x46c310
mov eax, dword [esp + 0xe318]
mov ecx, dword [eax + 0x170]
mov dword [esp + 0xdc], ecx
mov dword [esp + 0xd4], 2
mov esi, eax
jmp 0x46d385
push 0x4d847c
call fcn.0049be50
add esp, 4
push 6
push eax
push ebx
call fcn.004babb4
add esp, 0xc
test eax, eax
jne 0x46c372
mov al, byte [ebx + 6]
cmp al, 0x20
je 0x46c368
cmp al, 9
jne 0x46c372
push 1
add ebx, 7
jmp 0x46c2b0
cmp byte [ebx], 0x23
mov edi, dword [esp + 0xe318]
jne 0x46d8d9
mov esi, dword [edi + 0x170]
push ebx
push edi
call fcn.0046ea40
test eax, eax
je 0x46e4b8
cmp eax, 3
jne 0x46d8d9
mov eax, dword [esp + 0xec]
mov dword [edi + 0x170], esi
mov dword [edi + 0x16c], eax
mov dword [0x4f3ca4], eax
mov esi, edi
jmp 0x46d385
mov edi, dword [esp + 0x14]
xor ebp, ebp
cmp byte [edi], 0x3a
mov dword [esp + 0x30], ebp
jne 0x46c49a
mov cl, byte [edi + 1]
test cl, cl
je 0x46c49a
lea esi, [edi + 1]
mov dword [esp + 0x138], esi
cmp cl, 0x3a
je 0x46c407
push 0x3a
push esi
call fcn.004bb121
add esp, 8
cmp eax, ebp
jne 0x46c404
mov dword [esp + 0x30], ebp
jmp 0x46c49a
inc eax
jmp 0x46c414
cmp byte [edi + 2], 0
lea eax, [edi + 2]
je 0x46c49a
mov dword [esp + 0x30], eax
cmp eax, ebp
je 0x46c49a
mov bl, byte [0x4f13d5]
mov byte [esp + 0x2d], bl
mov edi, esi
cmp esi, eax
jae 0x46c469
lea esp, [esp]
movzx esi, byte [edi]
test esi, 0xffffff80
jne 0x46c44d
push 2
push esi
call fcn.004bb66e
add esp, 8
test eax, eax
je 0x46c44d
and esi, 0xffffffdf
mov eax, esi
cmp al, 0x58
je 0x46c45c
inc edi
cmp edi, dword [esp + 0x30]
jb 0x46c430
jmp 0x46c469
cmp byte [edi + 1], 0x30
setne byte [esp + 0x2d]
mov bl, byte [esp + 0x2d]
mov edi, dword [esp + 0x30]
lea ecx, [ecx]
mov al, byte [edi]
test al, al
je 0x46c48a
cmp al, byte [0x4ec3d3]
je 0x46c4f3
cmp al, 0x3a
je 0x46c4f3
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x46c476
test ebp, ebp
jne 0x46c6a9
mov edi, dword [esp + 0x14]
mov dword [esp + 0x30], ebp
push 0x4e2d8c
push edi
call fcn.004bb262
mov ebp, eax
add esp, 8
test ebp, ebp
je 0x46cd7b
cmp ebp, edi
jne 0x46c4bd
cmp byte [ebp + 2], 0x3a
jne 0x46c4bd
inc ebp
mov ecx, dword [esp + 0x14]
mov esi, ebp
cmp ebp, ecx
jbe 0x46c4d6
mov al, byte [esi]
cmp al, 0x20
je 0x46c4d1
cmp al, 9
jne 0x46c4d6
dec esi
cmp esi, ecx
ja 0x46c4c7
mov bl, byte [esi]
mov byte [esi], 0
mov eax, ecx
lea ecx, [ecx]
mov cl, byte [eax]
cmp cl, 0x20
je 0x46c4f0
cmp cl, 9
jne 0x46c57c
inc eax
jmp 0x46c4e0
mov al, byte [edi]
test al, al
je 0x46c48a
lea esi, [edi + 1]
cmp al, 0x3a
jne 0x46c516
cmp byte [esi], al
jne 0x46c576
mov ebp, edi
mov edi, esi
test bl, bl
jne 0x46c48a
inc edi
jmp 0x46c470
movsx eax, byte [esi]
add eax, 0xffffff9f
cmp eax, 0x15
ja case.0x46c528.99
movzx eax, byte [eax + 0x46e5b4]
jmp dword [eax*4 + 0x46e594]
mov byte [esi], 7
jmp case.0x46c528.99
mov byte [esi], 8
jmp case.0x46c528.99
mov byte [esi], 0xc
jmp case.0x46c528.99
mov byte [esi], 0xa
jmp case.0x46c528.99
mov byte [esi], 0xd
jmp case.0x46c528.99
mov byte [esi], 9
jmp case.0x46c528.99
mov byte [esi], 0xb
mov eax, esi
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x46c555
sub eax, edx
inc eax
push eax
push esi
push edi
call fcn.004bad10
add esp, 0xc
cmp byte [edi], 0x3a
jne 0x46c576
cmp byte [esi], 0x3a
jne 0x46c576
mov edi, esi
inc edi
jmp 0x46c470
push 0
push 0
push eax
call fcn.0040be10
add esp, 0xc
mov dword [esp + 0x114], eax
test eax, eax
je 0x46c69d
cmp eax, 4
jne 0x46c69f
mov esi, dword [esp + 0x24]
test esi, esi
je 0x46c5c2
mov eax, dword [esp + 0x20]
push eax
push 0
push esi
call fcn.004c16a0
add esp, 0xc
push esi
call fcn.004ba14c
add esp, 4
mov eax, dword [esp + 0xb8]
mov dword [esp + 0x84], vtable.TextMem.0
test eax, eax
je 0x46c5f6
cmp byte [esp + 0xc0], 0
je 0x46c5eb
push eax
call fcn.004ba14c
add esp, 4
mov dword [esp + 0xb8], 0
mov eax, dword [esp + 0xb4]
mov esi, vtable.TextStream.0
mov dword [esp + 0x84], esi
test eax, eax
je 0x46c616
push eax
call fcn.004ba14c
add esp, 4
mov dword [esp + 0x40], vtable.TextFile.0
mov dword [esp + 0xe310], 3
mov eax, dword [esp + 0x48]
test eax, eax
je 0x46c650
cmp dword [esp + 0x6c], 0
jne 0x46c650
mov ecx, dword [esp + 0x70]
push eax
push ecx
lea ecx, [esp + 0x48]
call dword [0x4dc8f4]
mov dword [esp + 0x48], 0
mov eax, dword [esp + 0x74]
mov byte [esp + 0x68], 0
cmp eax, 0xffffffff
je 0x46c67f
mov edx, dword [esp + 0x44]
and edx, 0x10000003
cmp edx, 0x10000000
je 0x46c677
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov dword [esp + 0x74], 0xffffffff
mov eax, dword [esp + 0x70]
test eax, eax
mov dword [esp + 0x40], esi
je 0x46e4e1
push eax
call fcn.004ba14c
add esp, 4
jmp 0x46e4e1
xor ebp, ebp
mov byte [esi], bl
test ebp, ebp
je 0x46cd7b
cmp ebp, dword [esp + 0x14]
jbe 0x46cd7b
mov ecx, dword [0x4ec48c]
cmp dword [ecx + 0x94], 0
jne 0x46d8ee
mov esi, dword [esp + 0xe318]
mov eax, dword [esi + 4]
test eax, eax
je 0x46c6de
cmp word [eax], 0x1a
je 0x46da09
mov byte [ebp], 0
add ebp, 2
cmp dword [esp + 0x30], 0
mov dword [esp + 0x1c], ebp
jne 0x46cb36
cmp byte [ebp], 0
je 0x46c72d
mov ecx, ebp
lea esp, [esp]
mov al, byte [ecx]
cmp al, 0x20
je 0x46c70a
cmp al, 9
jne 0x46c70d
inc ecx
jmp 0x46c700
mov edx, ecx
sub edx, ebp
je 0x46c72d
mov eax, ecx
lea esi, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x46c718
sub eax, esi
inc eax
push eax
push ecx
push ebp
call fcn.004bad10
add esp, 0xc
cmp byte [ebp], 0
mov dword [esp + 0xe8], ebp
je 0x46cb36
mov al, byte [ebp + 1]
test al, al
je 0x46c868
mov edi, dword [esp + 0xf8]
xor dl, dl
mov esi, ebp
xor cl, cl
cmp al, 0x20
je case.0x46c774.34
movsx eax, byte [esi]
add eax, 0xffffffdf
cmp eax, 0x5d
ja case.0x46c774.34
movzx eax, byte [eax + 0x46e5ec]
jmp dword [eax*4 + 0x46e5cc]
mov cl, 1
jmp case.0x46c774.36
mov dl, 1
jmp case.0x46c774.36
test cl, cl
jne 0x46c799
test dl, dl
jne 0x46c79d
or edi, 1
jmp case.0x46c774.36
test dl, dl
je 0x46c7a4
or byte [esp + 0x13], 4
xor dl, dl
test cl, cl
je case.0x46c774.36
or byte [esp + 0x13], 8
jmp 0x46c816
test cl, cl
jne 0x46c7bc
test dl, dl
jne 0x46c7c0
or edi, 2
jmp case.0x46c774.36
test dl, dl
je 0x46c7c7
or byte [esp + 0x13], 1
xor dl, dl
test cl, cl
je case.0x46c774.36
or byte [esp + 0x13], 2
jmp 0x46c816
test cl, cl
jne 0x46c7df
test dl, dl
jne 0x46c7e3
or edi, 4
jmp case.0x46c774.36
test dl, dl
je 0x46c7ea
or byte [esp + 0x13], 0x10
xor dl, dl
test cl, cl
je case.0x46c774.36
or byte [esp + 0x13], 0x20
jmp 0x46c816
test cl, cl
jne 0x46c802
test dl, dl
jne 0x46c806
or edi, 8
jmp case.0x46c774.36
test dl, dl
je 0x46c80d
or byte [esp + 0x13], 0x40
xor dl, dl
test cl, cl
je case.0x46c774.36
or byte [esp + 0x13], 0x80
xor cl, cl
mov al, byte [esi + 2]
inc esi
test al, al
jne 0x46c756
push 0
mov dword [esp + 0xfc], edi
mov dword [esp + 0xec], esi
call dword [sym.imp.USER32.dll_GetKeyboardLayout]
push eax
push 0
xor ecx, ecx
mov eax, esi
call fcn.00412c00
add esp, 8
mov byte [esp + 0x19], al
test al, al
je 0x46cb36
mov bl, al
mov ebp, dword [esp + 0x14]
cmp byte [ebp], 0
jne 0x46c871
mov esi, ebp
jmp 0x46c970
or bl, 0xff
mov byte [esp + 0x19], bl
jmp 0x46c857
mov cl, byte [ebp + 1]
lea esi, [ebp + 1]
xor bl, bl
xor dl, dl
mov eax, ebp
test cl, cl
je 0x46c96a
mov edi, dword [esp + 0xf4]
lea esp, [esp]
cmp cl, 0x20
je case.0x46c8af.34
movsx ecx, byte [eax]
add ecx, 0xffffffdf
cmp ecx, 0x5d
ja case.0x46c8af.34
movzx ecx, byte [ecx + 0x46e66c]
jmp dword [ecx*4 + 0x46e64c]
mov dl, 1
jmp case.0x46c8af.36
mov bl, 1
jmp case.0x46c8af.36
test dl, dl
jne 0x46c8d4
test bl, bl
jne 0x46c8d8
or edi, 1
jmp case.0x46c8af.36
test bl, bl
je 0x46c8df
or byte [esp + 0x12], 4
xor bl, bl
test dl, dl
je case.0x46c8af.36
or byte [esp + 0x12], 8
jmp 0x46c951
test dl, dl
jne 0x46c8f7
test bl, bl
jne 0x46c8fb
or edi, 2
jmp case.0x46c8af.36
test bl, bl
je 0x46c902
or byte [esp + 0x12], 1
xor bl, bl
test dl, dl
je case.0x46c8af.36
or byte [esp + 0x12], 2
jmp 0x46c951
test dl, dl
jne 0x46c91a
test bl, bl
jne 0x46c91e
or edi, 4
jmp case.0x46c8af.36
test bl, bl
je 0x46c925
or byte [esp + 0x12], 0x10
xor bl, bl
test dl, dl
je case.0x46c8af.36
or byte [esp + 0x12], 0x20
jmp 0x46c951
test dl, dl
jne 0x46c93d
test bl, bl
jne 0x46c941
or edi, 8
jmp case.0x46c8af.36
test bl, bl
je 0x46c948
or byte [esp + 0x12], 0x40
xor bl, bl
test dl, dl
je case.0x46c8af.36
or byte [esp + 0x12], 0x80
xor dl, dl
mov eax, esi
mov cl, byte [eax + 1]
lea esi, [eax + 1]
test cl, cl
jne 0x46c890
mov dword [esp + 0xf4], edi
mov bl, byte [esp + 0x19]
mov esi, eax
push 0
call dword [sym.imp.USER32.dll_GetKeyboardLayout]
push eax
push 0
xor ecx, ecx
mov eax, esi
call fcn.00412c00
push 0x4d9550
push esi
mov byte [esp + 0x3f], al
call fcn.004bb262
mov dl, byte [esp + 0x3f]
add esp, 0x10
test eax, eax
setne byte [esp + 0x37]
dec dl
cmp dl, 5
ja 0x46c9af
cmp byte [esp + 0x2f], 3
jne 0x46c9b9
mov al, byte [esp + 0x2f]
add al, 0x66
cmp al, 5
ja 0x46c9bd
mov al, 1
jmp 0x46c9bf
xor al, al
lea ecx, [ebx - 1]
cmp cl, 5
ja 0x46c9cc
cmp bl, 3
jne 0x46c9d4
add bl, 0x66
cmp bl, 5
ja 0x46c9db
mov byte [esp + 0x2e], 1
jmp 0x46c9e0
mov byte [esp + 0x2e], 0
test al, al
jne 0x46c9ef
mov byte [esp + 0x7b], 1
cmp byte [esp + 0x2e], al
jne 0x46c9f4
mov byte [esp + 0x7b], 0
mov eax, esi
lea edx, [eax + 1]
lea esp, [esp]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x46ca00
sub eax, edx
cmp eax, 1
jne 0x46ca21
movzx edx, byte [esi]
push edx
call dword [sym.imp.USER32.dll_IsCharUpperA]
mov ecx, 0x4e2ea0
test eax, eax
jne 0x46ca26
mov ecx, 0x4d6959
cmp byte [esp + 0x37], 0
mov eax, 0x4d6959
jne 0x46ca37
mov eax, 0x4e2c48
push ebp
push ecx
push eax
push str._s_s_s
mov esi, 0x20
lea edi, [esp + 0x194]
call fcn.004a2f10
mov edi, dword [esp + 0xf8]
push 0x1f
lea eax, [esp + 0x178]
push edi
push eax
call fcn.004bd1c0
mov esi, dword [esp + 0x38]
add esp, 0x1c
push 7
lea ecx, [esp + 0x134]
push esi
push ecx
mov byte [esp + 0x18f], 0
call fcn.004bd1c0
mov eax, edi
sub eax, esi
add esp, 0xc
mov byte [esp + 0x137], 0
cmp eax, 8
jae 0x46caa2
mov byte [esp + eax + 0x130], 0
cmp byte [esp + 0x130], 0
mov dword [esp + 0xf0], 0
jne case.0x46cad3.14
movzx eax, byte [esp + 0x19]
add eax, 0xfffffff3
cmp eax, 0x52
ja case.0x46cad3.14
movzx edx, byte [eax + 0x46e6dc]
jmp dword [edx*4 + 0x46e6cc]
mov dl, byte [esi]
test dl, dl
je case.0x46cad3.14
mov ecx, 0x4d9870
mov al, 0x20
jmp 0x46caf0
cmp dl, al
je case.0x46cad3.19
mov al, byte [ecx + 1]
inc ecx
test al, al
jne 0x46caf0
mov dl, byte [esi + 1]
inc esi
test dl, dl
jne 0x46cae4
jmp case.0x46cad3.14
push 0x4d7dc4
call fcn.0049be50
add esp, 4
push eax
lea eax, [esp + 0x168]
push eax
call fcn.004ba135
add esp, 8
test eax, eax
jne case.0x46cad3.14
mov byte [esp + 0x19], 0
jmp 0x46cb3a
mov ebp, dword [esp + 0x14]
mov ebx, dword [esp + 0xe318]
cmp byte [ebx + 0x174], 0
je 0x46cb70
xor edi, edi
push edi
push 0xff
push edi
push 0x67
push ebx
mov byte [ebx + 0x174], 0
call fcn.004725b0
test eax, eax
je 0x46daba
mov dword [ebx + 0x370], edi
push 1
push ebx
mov eax, ebp
call fcn.0041d610
test eax, eax
je 0x46dbac
mov edi, dword [esp + 0x30]
test edi, edi
je 0x46cc31
cmp byte [edi], 0
je 0x46dc36
cmp byte [esp + 0x2d], 0
mov eax, 0x4d6959
jne 0x46cba7
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x110]
mov edx, dword [esp + 0x138]
push 0
push ecx
push eax
mov eax, dword [ebx + 0x14]
push edx
push ecx
mov ecx, esp
mov dword [ecx], eax
mov eax, dword [ebx + 0x14]
mov ecx, dword [eax + 4]
mov dword [esp + 0xfc], esp
push ecx
call fcn.0040cf50
add esp, 0x18
test eax, eax
je 0x46dd2e
mov edx, dword [esp + 0x1c]
cmp byte [edx], 0
je case.0x46cad3.14
cmp byte [esp + 0x2d], 0
je 0x46cc12
push 0
push 0
push 0
push 0
push 0
push 0
mov eax, edx
push eax
mov ecx, ebx
call fcn.00470380
test eax, eax
je 0x46de04
push 0
push 0
push 0
push 0x67
mov ecx, ebx
push ecx
call fcn.004725b0
test eax, eax
je 0x46d2bc
mov esi, ebx
jmp 0x46d385
mov edi, dword [esp + 0x1c]
xor esi, esi
cmp byte [edi], 0
je 0x46cc81
push esi
mov esi, edi
call fcn.00409c40
movzx esi, ax
add esp, 4
test si, si
jne 0x46cc6b
push 0
push 0
push 0
push 0
push 0
push 0
push edi
mov ecx, ebx
call fcn.00470380
test eax, eax
je 0x46de1a
push 0
push 0
push 0
push 0x67
push ebx
call fcn.004725b0
test eax, eax
je 0x46defb
lea edx, [esp + 0xd3]
push edx
lea eax, [esp + 0x110]
push eax
push ebp
call fcn.0040c530
mov edi, eax
add esp, 0xc
test edi, edi
je 0x46cd0a
test si, si
je 0x46ccb0
mov word [edi + 6], si
mov esi, ebx
jmp 0x46d385
mov eax, dword [edi + 0x20]
test eax, eax
je 0x46ccd0
mov ecx, dword [0x4f0d50]
lea ecx, [ecx]
cmp dword [eax + 4], ecx
je 0x46dfa1
mov eax, dword [eax + 8]
test eax, eax
jne 0x46ccc0
mov ecx, dword [esp + 0x10c]
mov eax, dword [ebx + 0x14]
push ecx
call fcn.0040bcf0
test eax, eax
je 0x46e052
cmp byte [esp + 0xd3], 0
jne 0x46ccff
cmp byte [0x4f13d7], 0
je case.0x46cad3.14
mov byte [edi + 0x14], 1
mov esi, ebx
jmp 0x46d385
mov ecx, dword [esp + 0x10c]
mov edx, ebx
mov eax, dword [edx + 0x14]
mov edx, dword [eax + 4]
push ecx
push edx
push esi
push eax
xor bl, bl
call fcn.0040b5a0
add esp, 0x10
test eax, eax
jne case.0x46cad3.14
cmp dword [esp + 0x114], 3
jne 0x46bf26
push ebp
push 0x4e2ef8
call fcn.0049be50
add esp, 4
push eax
mov esi, 0x204
lea edi, [esp + 0x1ac]
call fcn.004a2f10
fldz
fstp qword [esp]
mov eax, edi
push 0
push 0
push 0x10000
push eax
call fcn.004a77b0
add esp, 0x18
jmp case.0x46cad3.14
mov edi, dword [esp + 0x1c]
mov esi, dword [esp + 0x14]
cmp byte [edi + esi - 1], 0x3a
jne 0x46d21d
cmp edi, 1
je 0x46e0f0
mov al, byte [esi]
mov ecx, esi
test al, al
je 0x46cdd1
mov dl, byte [str.___0123456789ABCDEF]
cmp al, 0x20
je 0x46d21d
cmp al, 9
je 0x46d21d
cmp al, dl
je 0x46d21d
cmp al, byte [0x4ec3d3]
je 0x46d21d
mov al, byte [ecx + 1]
inc ecx
test al, al
jne 0x46cda5
cmp byte [edi + esi - 2], 0x3a
jne 0x46cde1
cmp edi, 2
ja 0x46d21d
dec edi
mov byte [edi + esi], 0
cmp byte [esi], 0
mov dword [esp + 0x1c], edi
mov eax, edi
je 0x46cf0c
mov esi, dword [esp + 0x14]
cmp edi, 0xffffffff
jne 0x46ce0c
mov eax, esi
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x46ce03
sub eax, edx
lea eax, [eax + esi - 1]
mov cl, byte [eax]
cmp cl, 0x20
je 0x46ce1c
cmp cl, 9
jne 0x46ce23
cmp eax, esi
je 0x46ce29
dec eax
jmp 0x46ce10
mov byte [eax + 1], 0
jmp 0x46ce38
mov cl, byte [eax]
cmp cl, 0x20
je 0x46ce35
cmp cl, 9
jne 0x46ce38
mov byte [eax], 0
cmp byte [esi], 0
je 0x46cf0c
mov ebx, dword [esp + 0xe318]
mov esi, dword [ebx + 0x10]
mov edi, dword [esp + 0x14]
test esi, esi
je 0x46ce6f
mov eax, dword [esi + 4]
push edi
push eax
call fcn.004ba135
add esp, 8
test eax, eax
je 0x46ceee
mov esi, dword [esi + 0x10]
test esi, esi
jne 0x46ce53
cmp byte [edi], 0
je 0x46d0b5
mov eax, edi
lea edx, [eax + 1]
lea ecx, [ecx]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x46ce80
sub eax, edx
mov ebp, eax
lea ebx, [ebp + 1]
lea ecx, [ebx - 1]
cmp ecx, 0x7fff
ja 0x46cff8
xor edi, edi
cmp dword [0x4f1c1c], edi
jne 0x46d011
push 0x10
call fcn.004bbddb
mov esi, eax
add esp, 4
cmp esi, edi
je 0x46cee1
push 0x8000
mov dword [esi + 0xc], edi
call fcn.004ba2ed
add esp, 4
mov dword [esi + 4], eax
mov dword [esi], eax
cmp eax, edi
jne 0x46cfda
push esi
call fcn.004b9d3f
add esp, 4
mov esi, dword [0x4f1c20]
xor eax, eax
jmp 0x46cfef
push edi
push 0x4dabdc
call fcn.0049be50
add esp, 4
push eax
mov ecx, ebx
call fcn.00473b40
test eax, eax
jne case.0x46cad3.14
mov esi, dword [esp + 0x24]
xor edi, edi
cmp esi, edi
je 0x46cf2e
mov eax, dword [esp + 0x20]
push eax
push edi
push esi
call fcn.004c16a0
add esp, 0xc
push esi
call fcn.004ba14c
add esp, 4
mov eax, dword [esp + 0xb8]
mov dword [esp + 0x84], vtable.TextMem.0
cmp eax, edi
je 0x46cf5e
cmp byte [esp + 0xc0], 0
je 0x46cf57
push eax
call fcn.004ba14c
add esp, 4
mov dword [esp + 0xb8], edi
mov eax, dword [esp + 0xb4]
mov esi, vtable.TextStream.0
mov dword [esp + 0x84], esi
cmp eax, edi
je 0x46cf7e
push eax
call fcn.004ba14c
add esp, 4
mov dword [esp + 0x40], vtable.TextFile.0
mov dword [esp + 0xe310], 0xd
mov eax, dword [esp + 0x48]
cmp eax, edi
je 0x46cfb3
cmp dword [esp + 0x6c], edi
jne 0x46cfb3
mov ecx, dword [esp + 0x70]
push eax
push ecx
lea ecx, [esp + 0x48]
call dword [0x4dc8f4]
mov dword [esp + 0x48], edi
mov eax, dword [esp + 0x74]
mov byte [esp + 0x68], 0
cmp eax, 0xffffffff
je 0x46def0
mov edx, dword [esp + 0x44]
and edx, 0x10000003
cmp edx, 0x10000000
jmp 0x46dedf
inc dword [0x4f1c28]
mov dword [esi + 8], 0x8000
mov dword [0x4f1c20], esi
mov eax, esi
mov dword [0x4f1c1c], eax
cmp eax, edi
jne 0x46d017
mov edx, dword [esp + 0x14]
push edx
push str.Out_of_memory.
mov ecx, 0x4f1cd8
call fcn.00473b40
jmp 0x46cf0c
mov esi, dword [0x4f1c20]
cmp ebx, dword [esi + 8]
jbe 0x46d074
push 0x10
call fcn.004bbddb
mov esi, eax
add esp, 4
cmp esi, edi
je 0x46d04e
push 0x8000
mov dword [esi + 0xc], edi
call fcn.004ba2ed
add esp, 4
mov dword [esi + 4], eax
mov dword [esi], eax
cmp eax, edi
jne 0x46d058
push esi
call fcn.004b9d3f
add esp, 4
mov esi, dword [0x4f1c20]
xor eax, eax
jmp 0x46d06d
inc dword [0x4f1c28]
mov dword [esi + 8], 0x8000
mov dword [0x4f1c20], esi
mov eax, esi
mov dword [esi + 0xc], eax
cmp eax, edi
je 0x46cff8
mov edi, dword [esi + 4]
mov eax, ebx
and eax, 3
mov dword [0x4f1c24], edi
je 0x46d089
sub ebx, eax
add ebx, 4
mov eax, ebx
sub dword [esi + 8], eax
lea edx, [edi + eax]
mov dword [esi + 4], edx
test edi, edi
je 0x46cff8
test ebp, ebp
je 0x46d0af
mov eax, dword [esp + 0x14]
push ebp
push eax
push edi
call fcn.004c3030
add esp, 0xc
mov byte [edi + ebp], 0
jmp 0x46d0c0
mov esi, dword [0x4f1c20]
mov edi, 0x4d6959
cmp dword [0x4f1c1c], 0
jne 0x46d12b
push 0x10
call fcn.004bbddb
mov esi, eax
add esp, 4
test esi, esi
je 0x46d0ff
push 0x8000
mov dword [esi + 0xc], 0
call fcn.004ba2ed
add esp, 4
mov dword [esi + 4], eax
mov dword [esi], eax
test eax, eax
jne 0x46d109
push esi
call fcn.004b9d3f
add esp, 4
mov esi, dword [0x4f1c20]
xor eax, eax
jmp 0x46d11e
inc dword [0x4f1c28]
mov dword [esi + 8], 0x8000
mov dword [0x4f1c20], esi
mov eax, esi
mov dword [0x4f1c1c], eax
test eax, eax
je 0x46d1d0
cmp dword [esi + 8], 0x14
jae 0x46d18d
push 0x10
call fcn.004bbddb
mov esi, eax
add esp, 4
test esi, esi
je 0x46d167
push 0x8000
mov dword [esi + 0xc], 0
call fcn.004ba2ed
add esp, 4
mov dword [esi + 4], eax
mov dword [esi], eax
test eax, eax
jne 0x46d171
push esi
call fcn.004b9d3f
add esp, 4
mov esi, dword [0x4f1c20]
xor eax, eax
jmp 0x46d186
inc dword [0x4f1c28]
mov dword [esi + 8], 0x8000
mov dword [0x4f1c20], esi
mov eax, esi
mov dword [esi + 0xc], eax
test eax, eax
je 0x46d1d0
mov eax, dword [esi + 4]
add dword [esi + 8], 0xffffffec
lea ecx, [eax + 0x14]
mov dword [0x4f1c24], eax
mov dword [esi + 4], ecx
test eax, eax
je 0x46d1d0
mov ecx, dword [esp + 0xe318]
xor edx, edx
mov dword [eax], vtable.Label.0
mov dword [eax + 4], edi
mov dword [eax + 8], edx
mov dword [eax + 0xc], edx
mov dword [eax + 0x10], edx
mov ebx, dword [ecx + 0x14]
mov dword [eax + 0xc], ebx
mov esi, eax
cmp dword [ecx + 0x10], edx
jne 0x46d1e6
mov dword [ecx + 0x10], eax
jmp 0x46d1ec
mov ecx, dword [esp + 0xe318]
push 0x4d6959
push str.Out_of_memory.
jmp 0x46ceff
mov edx, dword [ecx + 0x14]
mov dword [edx + 0x10], eax
mov ebx, ecx
push 0x4dabf8
mov dword [ebx + 0x14], eax
call fcn.0049be50
add esp, 4
push eax
push edi
call fcn.004ba135
add esp, 8
test eax, eax
jne case.0x46cad3.14
mov dword [ebx + 0x5c0], esi
mov esi, ebx
jmp 0x46d385
cmp byte [esi], 0x23
jne 0x46d26d
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0xe318]
mov esi, dword [eax + 0x170]
push ecx
push eax
call fcn.0046ea40
test eax, eax
je 0x46e1de
cmp eax, 3
jne 0x46d26d
mov ecx, dword [esp + 0xe318]
mov eax, dword [esp + 0xec]
mov dword [ecx + 0x170], esi
mov dword [ecx + 0x16c], eax
mov dword [0x4f3ca4], eax
mov esi, ecx
jmp 0x46d385
mov esi, dword [esp + 0x14]
mov al, byte [esi]
cmp al, 0x7b
je 0x46d339
cmp al, 0x7d
je 0x46d339
cmp dword [0x4f33d0], 0
je 0x46d299
mov edx, dword [esp + 0xe4]
mov dword [0x4f3ca8], edx
push 0
push 0
push 0
push 0
push 0
push 0
push esi
mov esi, dword [esp + 0xe334]
mov ecx, esi
call fcn.00470380
test eax, eax
jne 0x46d385
mov esi, dword [esp + 0x24]
test esi, esi
je 0x46d2dd
mov eax, dword [esp + 0x20]
push eax
push 0
push esi
call fcn.004c16a0
add esp, 0xc
push esi
call fcn.004ba14c
add esp, 4
mov eax, dword [esp + 0xb8]
mov dword [esp + 0x84], vtable.TextMem.0
test eax, eax
je 0x46d311
cmp byte [esp + 0xc0], 0
je 0x46d306
push eax
call fcn.004ba14c
add esp, 4
mov dword [esp + 0xb8], 0
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x84], vtable.TextStream.0
test eax, eax
je 0x46e4cd
push eax
call fcn.004ba14c
add esp, 4
jmp 0x46e4cd
mov edx, dword [esp + 0xe318]
xor ecx, ecx
cmp al, 0x7b
setne cl
push 0
push 0
push 0
add ecx, 0x73
push ecx
push edx
call fcn.004725b0
test eax, eax
je 0x46bf26
lea eax, [esi + 1]
mov cl, byte [eax]
cmp cl, 0x20
je 0x46d36e
cmp cl, 9
jne 0x46d371
inc eax
jmp 0x46d362
cmp byte [eax], 0
mov dword [esp + 0x14], eax
jne 0x46d51f
mov esi, dword [esp + 0xe318]
mov bl, byte [esp + 0x19]
test bl, bl
je case.0x46d3b1.4
mov eax, dword [esp + 0xf0]
inc eax
mov dword [esp + 0xf0], eax
dec eax
cmp eax, 9
ja case.0x46d3b1.4
movzx eax, byte [eax + 0x46e744]
jmp dword [eax*4 + 0x46e730]
lea ecx, [esp + 0x184]
push ecx
push str.u_k
call fcn.0049be50
mov edx, dword [esp + 0x1c]
add esp, 4
push eax
push edx
call fcn.004ba66c
add esp, 0xc
mov dword [esp + 0x1c], eax
jmp 0x46c3bf
mov ax, word [0x4d9230]
mov edi, dword [esp + 0x14]
mov word [edi], ax
mov cl, byte [0x4d9232]
xor eax, eax
cmp byte [esp + 0x2e], al
push 0
setne al
push 1
lea edx, [esp + 0x1c]
push edx
mov byte [edi + 2], cl
add eax, 0xc1
push eax
push esi
call fcn.004725b0
cmp byte [esp + 0x7b], 0
je 0x46d456
lea ecx, [esp + 0x164]
push ecx
push str.9.q__m
call fcn.0049be50
add esp, 4
push eax
push edi
call fcn.004ba66c
add esp, 0xc
mov dword [esp + 0x1c], eax
mov dword [esp + 0xf0], 9
jmp 0x46c3bf
mov edi, dword [esp + 0x14]
mov eax, 0x4d6959
cmp bl, 0x12
je 0x46d46a
cmp bl, 0xa3
jbe 0x46d493
cmp bl, 0xa5
ja 0x46d493
movzx ecx, byte [esp + 0x2f]
sub ecx, 0x11
je 0x46d486
sub ecx, 0x91
je 0x46d486
dec ecx
jne 0x46d493
push 0x4e2fac
jmp 0x46d48b
push 0x4e2f98
call fcn.0049be50
add esp, 4
lea edx, [esp + 0x164]
push edx
lea ecx, [esp + 0x134]
push ecx
push eax
xor ebx, ebx
push str._n.10_2_5i5d
mov dword [esi + 0x370], ebx
call fcn.0049be50
add esp, 4
push eax
push edi
call fcn.004ba66c
add esp, 0x14
push ebx
push 1
lea edx, [esp + 0x1c]
push edx
push 0x41
push esi
call fcn.004725b0
test eax, eax
je 0x46e26b
push ebx
push ebx
push ebx
push 0x67
push esi
call fcn.004725b0
lea eax, [esp + 0x184]
push eax
push str.u_q28ow
mov dword [esi + 0x370], ebx
call fcn.0049be50
add esp, 4
push eax
push edi
call fcn.004ba66c
add esp, 0xc
mov dword [esp + 0x1c], eax
mov dword [esp + 0xf0], 2
jmp 0x46c3bf
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x46d522
mov esi, dword [esp + 0xe318]
sub eax, edx
mov dword [esp + 0x1c], eax
mov dword [esi + 0x370], 0
jmp 0x46be18
mov cx, word [0x4d9230]
mov edi, dword [esp + 0x14]
mov word [edi], cx
mov dl, byte [0x4d9232]
xor ecx, ecx
cmp byte [esp + 0x2e], cl
push 0
setne cl
push 1
lea eax, [esp + 0x1c]
push eax
mov byte [edi + 2], dl
add ecx, 0xc1
push ecx
push esi
call fcn.004725b0
lea edx, [esp + 0x164]
push edx
push str._n.10_dle__
call fcn.0049be50
add esp, 4
push eax
push edi
call fcn.004ba66c
add esp, 0xc
push 0
push 1
lea eax, [esp + 0x1c]
push eax
push 0x41
push esi
call fcn.004725b0
push 0
push 0
push 0
push 0x67
push esi
call fcn.004725b0
mov byte [esp + 0x19], 0
mov eax, dword [esp + 0x80]
mov ecx, dword [esp + 0xe0]
mov esi, dword [esp + 0xe318]
mov edi, dword [esp + 0xe4]
lea edx, [esp + 0x62f4]
xor ebx, ebx
or ebp, 0xffffffff
mov dword [esp + 0x14], eax
mov dword [esp + 0x1c], ecx
cmp eax, edx
jne 0x46d605
lea eax, [esp + 0xa2fc]
mov dword [esp + 0x80], eax
jmp 0x46b620
lea ecx, [esp + 0x62f4]
mov dword [esp + 0x80], ecx
jmp 0x46b620
mov esi, dword [esp + 0x24]
cmp esi, ebx
je 0x46d638
mov eax, dword [esp + 0x20]
push eax
push ebx
push esi
call fcn.004c16a0
add esp, 0xc
push esi
call fcn.004ba14c
add esp, 4
lea ecx, [esp + 0x84]
call fcn.0046a770
mov dword [esp + 0xe310], ebp
jmp 0x46e4d8
push ebx
push 0x4e2d98
call fcn.0049be50
add esp, 4
jmp 0x46b36e
lea ecx, [esp + 0x3ac]
push ecx
push 0x4e2dfc
call fcn.0049be50
mov ecx, dword [esp + 0xe320]
add esp, 4
push eax
call fcn.00473b40
mov esi, dword [esp + 0x24]
mov edi, eax
test esi, esi
je 0x46d6a8
mov edx, dword [esp + 0x20]
push edx
push 0
push esi
call fcn.004c16a0
add esp, 0xc
push esi
call fcn.004ba14c
add esp, 4
mov eax, dword [esp + 0xb8]
mov dword [esp + 0x84], vtable.TextMem.0
test eax, eax
je 0x46d6dc
cmp byte [esp + 0xc0], 0
je 0x46d6d1
push eax
call fcn.004ba14c
add esp, 4
mov dword [esp + 0xb8], 0
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x84], vtable.TextStream.0
test eax, eax
je 0x46d6fb
push eax
call fcn.004ba14c
add esp, 4
lea ecx, [esp + 0x40]
mov dword [esp + 0xe310], 0xffffffff
call fcn.0041bc00
mov eax, edi
jmp 0x46e4e3
cmp dword [esi + 0x164], 0
je 0x46d739
push 0x4e2dfc
call fcn.0049be50
add esp, 4
lea ecx, [esp + 0x3ac]
push ecx
jmp 0x46b36e
push 0x4daff0
call fcn.0049be50
add esp, 4
lea ecx, [esp + 0x3ac]
push ecx
jmp 0x46b36e
push edx
push 0x4e2dd0
call fcn.0049be50
mov ecx, dword [esp + 0xe320]
add esp, 4
push eax
call fcn.00473b40
mov esi, dword [esp + 0x24]
mov edi, eax
test esi, esi
je 0x46d791
mov eax, dword [esp + 0x20]
push eax
push 0
push esi
call fcn.004c16a0
add esp, 0xc
push esi
call fcn.004ba14c
add esp, 4
mov eax, dword [esp + 0xb8]
mov dword [esp + 0x84], vtable.TextMem.0
test eax, eax
je 0x46d7c5
cmp byte [esp + 0xc0], 0
je 0x46d7ba
push eax
call fcn.004ba14c
add esp, 4
mov dword [esp + 0xb8], 0
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x84], vtable.TextStream.0
test eax, eax
je 0x46d7e4
push eax
call fcn.004ba14c
add esp, 4
lea ecx, [esp + 0x40]
mov dword [esp + 0xe310], 0xffffffff
call fcn.0041bc00
mov eax, edi
jmp 0x46e4e3
mov esi, dword [esp + 0x24]
test esi, esi
je 0x46e4c1
mov ecx, dword [esp + 0x20]
push ecx
push 0
push esi
call fcn.004c16a0
add esp, 0xc
push esi
call fcn.004ba14c
add esp, 4
jmp 0x46e4c1
mov ebx, dword [esp + 0x14]
push ebx
push 0x4e2e14
call fcn.0049be50
mov ecx, dword [esp + 0xe320]
add esp, 4
push eax
call fcn.00473b40
mov esi, dword [esp + 0x24]
mov edi, eax
test esi, esi
je 0x46d86b
mov edx, dword [esp + 0x20]
push edx
push 0
push esi
call fcn.004c16a0
add esp, 0xc
push esi
call fcn.004ba14c
add esp, 4
mov eax, dword [esp + 0xb8]
mov dword [esp + 0x84], vtable.TextMem.0
test eax, eax
je 0x46d89f
cmp byte [esp + 0xc0], 0
je 0x46d894
push eax
call fcn.004ba14c
add esp, 4
mov dword [esp + 0xb8], 0
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x84], vtable.TextStream.0
test eax, eax
je 0x46d8be
push eax
call fcn.004ba14c
add esp, 4
lea ecx, [esp + 0x40]
mov dword [esp + 0xe310], 0xffffffff
call fcn.0041bc00
mov eax, edi
jmp 0x46e4e3
push ebx
push 0x4daff0
call fcn.0049be50
add esp, 4
mov ecx, edi
jmp 0x46b375
mov eax, dword [esp + 0x14]
push eax
push 0x4e2e40
call fcn.0049be50
mov ecx, dword [esp + 0xe320]
add esp, 4
push eax
call fcn.00473b40
mov esi, dword [esp + 0x24]
mov edi, eax
test esi, esi
je 0x46d930
mov ecx, dword [esp + 0x20]
push ecx
push 0
push esi
call fcn.004c16a0
add esp, 0xc
push esi
call fcn.004ba14c
add esp, 4
mov eax, dword [esp + 0xb8]
mov dword [esp + 0x84], vtable.TextMem.0
test eax, eax
je 0x46d964
cmp byte [esp + 0xc0], 0
je 0x46d959
push eax
call fcn.004ba14c
add esp, 4
mov dword [esp + 0xb8], 0
mov eax, dword [esp + 0xb4]
mov esi, vtable.TextStream.0
mov dword [esp + 0x84], esi
test eax, eax
je 0x46d984
push eax
call fcn.004ba14c
add esp, 4
mov dword [esp + 0x40], vtable.TextFile.0
mov dword [esp + 0xe310], 4
mov eax, dword [esp + 0x48]
test eax, eax
je 0x46d9be
cmp dword [esp + 0x6c], 0
jne 0x46d9be
mov edx, dword [esp + 0x70]
push eax
push edx
lea ecx, [esp + 0x48]
call dword [0x4dc8f4]
mov dword [esp + 0x48], 0
mov eax, dword [esp + 0x74]
mov byte [esp + 0x68], 0
cmp eax, 0xffffffff
je 0x46d9ed
mov ecx, dword [esp + 0x44]
and ecx, 0x10000003
cmp ecx, 0x10000000
je 0x46d9e5
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov dword [esp + 0x74], 0xffffffff
mov eax, dword [esp + 0x70]
test eax, eax
mov dword [esp + 0x40], esi
je 0x46da02
push eax
call fcn.004ba14c
add esp, 4
mov eax, edi
jmp 0x46e4e3
mov edx, eax
mov eax, dword [esp + 0x14]
push eax
push 0x4e2e80
mov dword [esi + 0x370], edx
call fcn.0049be50
add esp, 4
push eax
mov ecx, esi
call fcn.00473b40
mov esi, dword [esp + 0x24]
mov edi, eax
test esi, esi
je 0x46da4e
mov ecx, dword [esp + 0x20]
push ecx
push 0
push esi
call fcn.004c16a0
add esp, 0xc
push esi
call fcn.004ba14c
add esp, 4
mov eax, dword [esp + 0xb8]
mov dword [esp + 0x84], vtable.TextMem.0
test eax, eax
je 0x46da82
cmp byte [esp + 0xc0], 0
je 0x46da77
push eax
call fcn.004ba14c
add esp, 4
mov dword [esp + 0xb8], 0
mov eax, dword [esp + 0xb4]
mov esi, vtable.TextStream.0
mov dword [esp + 0x84], esi
test eax, eax
je 0x46daa2
push eax
call fcn.004ba14c
add esp, 4
mov dword [esp + 0x40], vtable.TextFile.0
mov dword [esp + 0xe310], 5
jmp 0x46d997
mov esi, dword [esp + 0x24]
cmp esi, edi
je 0x46dada
mov edx, dword [esp + 0x20]
push edx
push edi
push esi
call fcn.004c16a0
add esp, 0xc
push esi
call fcn.004ba14c
add esp, 4
mov eax, dword [esp + 0xb8]
mov dword [esp + 0x84], vtable.TextMem.0
cmp eax, edi
je 0x46db0a
cmp byte [esp + 0xc0], 0
je 0x46db03
push eax
call fcn.004ba14c
add esp, 4
mov dword [esp + 0xb8], edi
mov eax, dword [esp + 0xb4]
mov esi, vtable.TextStream.0
mov dword [esp + 0x84], esi
cmp eax, edi
je 0x46db2a
push eax
call fcn.004ba14c
add esp, 4
mov dword [esp + 0x40], vtable.TextFile.0
mov dword [esp + 0xe310], 6
mov eax, dword [esp + 0x48]
cmp eax, edi
je 0x46db5f
cmp dword [esp + 0x6c], edi
jne 0x46db5f
push eax
mov eax, dword [esp + 0x74]
push eax
lea ecx, [esp + 0x48]
call dword [0x4dc8f4]
mov dword [esp + 0x48], edi
mov eax, dword [esp + 0x74]
mov byte [esp + 0x68], 0
cmp eax, 0xffffffff
je 0x46db8e
mov ecx, dword [esp + 0x44]
and ecx, 0x10000003
cmp ecx, 0x10000000
je 0x46db86
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov dword [esp + 0x74], 0xffffffff
mov eax, dword [esp + 0x70]
mov dword [esp + 0x40], esi
cmp eax, edi
je 0x46e4e1
push eax
call fcn.004ba14c
add esp, 4
jmp 0x46e4e1
mov esi, dword [esp + 0x24]
xor edi, edi
cmp esi, edi
je 0x46dbce
mov edx, dword [esp + 0x20]
push edx
push edi
push esi
call fcn.004c16a0
add esp, 0xc
push esi
call fcn.004ba14c
add esp, 4
mov eax, dword [esp + 0xb8]
mov dword [esp + 0x84], vtable.TextMem.0
cmp eax, edi
je 0x46dbfe
cmp byte [esp + 0xc0], 0
je 0x46dbf7
push eax
call fcn.004ba14c
add esp, 4
mov dword [esp + 0xb8], edi
mov eax, dword [esp + 0xb4]
mov esi, vtable.TextStream.0
mov dword [esp + 0x84], esi
cmp eax, edi
je 0x46dc1e
push eax
call fcn.004ba14c
add esp, 4
mov dword [esp + 0x40], vtable.TextFile.0
mov dword [esp + 0xe310], 7
jmp 0x46db3d
push ebp
push 0x4e2ea4
call fcn.0049be50
add esp, 4
push eax
mov ecx, ebx
call fcn.00473b40
mov esi, dword [esp + 0x24]
xor ebx, ebx
mov edi, eax
cmp esi, ebx
je 0x46dc70
mov edx, dword [esp + 0x20]
push edx
push ebx
push esi
call fcn.004c16a0
add esp, 0xc
push esi
call fcn.004ba14c
add esp, 4
mov eax, dword [esp + 0xb8]
mov dword [esp + 0x84], vtable.TextMem.0
cmp eax, ebx
je 0x46dc9f
cmp byte [esp + 0xc0], bl
je 0x46dc98
push eax
call fcn.004ba14c
add esp, 4
mov dword [esp + 0xb8], ebx
mov eax, dword [esp + 0xb4]
mov esi, vtable.TextStream.0
mov dword [esp + 0x84], esi
cmp eax, ebx
je 0x46dcbf
push eax
call fcn.004ba14c
add esp, 4
mov dword [esp + 0x40], vtable.TextFile.0
mov dword [esp + 0xe310], 8
mov eax, dword [esp + 0x48]
cmp eax, ebx
je 0x46dcf4
cmp dword [esp + 0x6c], ebx
jne 0x46dcf4
push eax
mov eax, dword [esp + 0x74]
push eax
lea ecx, [esp + 0x48]
call dword [0x4dc8f4]
mov dword [esp + 0x48], ebx
mov eax, dword [esp + 0x74]
mov byte [esp + 0x68], 0
cmp eax, 0xffffffff
je 0x46dd23
mov ecx, dword [esp + 0x44]
and ecx, 0x10000003
cmp ecx, 0x10000000
je 0x46dd1b
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov dword [esp + 0x74], 0xffffffff
mov eax, dword [esp + 0x70]
cmp eax, ebx
jmp 0x46d9f3
mov esi, dword [esp + 0x24]
test esi, esi
je 0x46dd4f
mov edx, dword [esp + 0x20]
push edx
push 0
push esi
call fcn.004c16a0
add esp, 0xc
push esi
call fcn.004ba14c
add esp, 4
mov eax, dword [esp + 0xb8]
mov dword [esp + 0x84], vtable.TextMem.0
test eax, eax
je 0x46dd83
cmp byte [esp + 0xc0], 0
je 0x46dd78
push eax
call fcn.004ba14c
add esp, 4
mov dword [esp + 0xb8], 0
mov eax, dword [esp + 0xb4]
mov esi, vtable.TextStream.0
mov dword [esp + 0x84], esi
test eax, eax
je 0x46dda3
push eax
call fcn.004ba14c
add esp, 4
mov dword [esp + 0x40], vtable.TextFile.0
mov dword [esp + 0xe310], 9
mov eax, dword [esp + 0x48]
test eax, eax
je 0x46dddd
cmp dword [esp + 0x6c], 0
jne 0x46dddd
push eax
mov eax, dword [esp + 0x74]
push eax
lea ecx, [esp + 0x48]
call dword [0x4dc8f4]
mov dword [esp + 0x48], 0
mov eax, dword [esp + 0x74]
mov byte [esp + 0x68], 0
cmp eax, 0xffffffff
je 0x46c67f
mov ecx, dword [esp + 0x44]
and ecx, 0x10000003
cmp ecx, 0x10000000
jmp 0x46c66e
mov esi, dword [esp + 0x24]
test esi, esi
je 0x46d2dd
mov edx, dword [esp + 0x20]
push edx
jmp 0x46d2c9
mov esi, dword [esp + 0x24]
xor edi, edi
cmp esi, edi
je 0x46de3c
mov ecx, dword [esp + 0x20]
push ecx
push edi
push esi
call fcn.004c16a0
add esp, 0xc
push esi
call fcn.004ba14c
add esp, 4
mov eax, dword [esp + 0xb8]
mov dword [esp + 0x84], vtable.TextMem.0
cmp eax, edi
je 0x46de6c
cmp byte [esp + 0xc0], 0
je 0x46de65
push eax
call fcn.004ba14c
add esp, 4
mov dword [esp + 0xb8], edi
mov eax, dword [esp + 0xb4]
mov esi, vtable.TextStream.0
mov dword [esp + 0x84], esi
cmp eax, edi
je 0x46de8c
push eax
call fcn.004ba14c
add esp, 4
mov dword [esp + 0x40], vtable.TextFile.0
mov dword [esp + 0xe310], 0xa
mov eax, dword [esp + 0x48]
cmp eax, edi
je 0x46dec1
cmp dword [esp + 0x6c], edi
jne 0x46dec1
mov edx, dword [esp + 0x70]
push eax
push edx
lea ecx, [esp + 0x48]
call dword [0x4dc8f4]
mov dword [esp + 0x48], edi
mov eax, dword [esp + 0x74]
mov byte [esp + 0x68], 0
cmp eax, 0xffffffff
je 0x46def0
mov ecx, dword [esp + 0x44]
and ecx, 0x10000003
cmp ecx, 0x10000000
je 0x46dee8
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov dword [esp + 0x74], 0xffffffff
mov eax, dword [esp + 0x70]
cmp eax, edi
jmp 0x46c685
mov esi, dword [esp + 0x24]
xor edi, edi
cmp esi, edi
je 0x46df1d
mov edx, dword [esp + 0x20]
push edx
push edi
push esi
call fcn.004c16a0
add esp, 0xc
push esi
call fcn.004ba14c
add esp, 4
mov eax, dword [esp + 0xb8]
mov dword [esp + 0x84], vtable.TextMem.0
cmp eax, edi
je 0x46df4d
cmp byte [esp + 0xc0], 0
je 0x46df46
push eax
call fcn.004ba14c
add esp, 4
mov dword [esp + 0xb8], edi
mov eax, dword [esp + 0xb4]
mov esi, vtable.TextStream.0
mov dword [esp + 0x84], esi
cmp eax, edi
je 0x46df6d
push eax
call fcn.004ba14c
add esp, 4
mov dword [esp + 0x40], vtable.TextFile.0
mov dword [esp + 0xe310], 0xb
mov eax, dword [esp + 0x48]
cmp eax, edi
je 0x46dec1
cmp dword [esp + 0x6c], edi
jne 0x46dec1
push eax
mov eax, dword [esp + 0x74]
push eax
jmp 0x46deb3
push ebp
push 0x4e2ed8
mov dword [ebx + 0x370], 0
call fcn.0049be50
add esp, 4
push eax
mov ecx, ebx
call fcn.00473b40
mov esi, dword [esp + 0x24]
mov edi, eax
test esi, esi
je 0x46dfe4
mov edx, dword [esp + 0x20]
push edx
push 0
push esi
call fcn.004c16a0
add esp, 0xc
push esi
call fcn.004ba14c
add esp, 4
mov eax, dword [esp + 0xb8]
mov dword [esp + 0x84], vtable.TextMem.0
test eax, eax
je 0x46e018
cmp byte [esp + 0xc0], 0
je 0x46e00d
push eax
call fcn.004ba14c
add esp, 4
mov dword [esp + 0xb8], 0
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x84], vtable.TextStream.0
test eax, eax
je 0x46e037
push eax
call fcn.004ba14c
add esp, 4
lea ecx, [esp + 0x40]
mov dword [esp + 0xe310], 0xffffffff
call fcn.0041bc00
mov eax, edi
jmp 0x46e4e3
push ebp
push str.Out_of_memory.
mov ecx, ebx
call fcn.00473b40
mov esi, dword [esp + 0x24]
mov edi, eax
test esi, esi
je 0x46e082
mov eax, dword [esp + 0x20]
push eax
push 0
push esi
call fcn.004c16a0
add esp, 0xc
push esi
call fcn.004ba14c
add esp, 4
mov eax, dword [esp + 0xb8]
mov dword [esp + 0x84], vtable.TextMem.0
test eax, eax
je 0x46e0b6
cmp byte [esp + 0xc0], 0
je 0x46e0ab
push eax
call fcn.004ba14c
add esp, 4
mov dword [esp + 0xb8], 0
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x84], vtable.TextStream.0
test eax, eax
je 0x46e0d5
push eax
call fcn.004ba14c
add esp, 4
lea ecx, [esp + 0x40]
mov dword [esp + 0xe310], 0xffffffff
call fcn.0041bc00
mov eax, edi
jmp 0x46e4e3
mov edx, dword [esp + 0x14]
push edx
push 0x4e2c10
call fcn.0049be50
mov ecx, dword [esp + 0xe320]
add esp, 4
push eax
call fcn.00473b40
mov esi, dword [esp + 0x24]
xor ebx, ebx
mov edi, eax
cmp esi, ebx
je 0x46e133
mov eax, dword [esp + 0x20]
push eax
push ebx
push esi
call fcn.004c16a0
add esp, 0xc
push esi
call fcn.004ba14c
add esp, 4
mov eax, dword [esp + 0xb8]
mov dword [esp + 0x84], vtable.TextMem.0
cmp eax, ebx
je 0x46e162
cmp byte [esp + 0xc0], bl
je 0x46e15b
push eax
call fcn.004ba14c
add esp, 4
mov dword [esp + 0xb8], ebx
mov eax, dword [esp + 0xb4]
mov esi, vtable.TextStream.0
mov dword [esp + 0x84], esi
cmp eax, ebx
je 0x46e182
push eax
call fcn.004ba14c
add esp, 4
mov dword [esp + 0x40], vtable.TextFile.0
mov dword [esp + 0xe310], 0xc
mov eax, dword [esp + 0x48]
cmp eax, ebx
je 0x46e1b7
cmp dword [esp + 0x6c], ebx
jne 0x46e1b7
mov ecx, dword [esp + 0x70]
push eax
push ecx
lea ecx, [esp + 0x48]
call dword [0x4dc8f4]
mov dword [esp + 0x48], ebx
mov eax, dword [esp + 0x74]
mov byte [esp + 0x68], 0
cmp eax, 0xffffffff
je 0x46dd23
mov edx, dword [esp + 0x44]
and edx, 0x10000003
cmp edx, 0x10000000
jmp 0x46dd12
mov esi, dword [esp + 0x24]
test esi, esi
je 0x46e1ff
mov eax, dword [esp + 0x20]
push eax
push 0
push esi
call fcn.004c16a0
add esp, 0xc
push esi
call fcn.004ba14c
add esp, 4
mov eax, dword [esp + 0xb8]
mov dword [esp + 0x84], vtable.TextMem.0
test eax, eax
je 0x46e233
cmp byte [esp + 0xc0], 0
je 0x46e228
push eax
call fcn.004ba14c
add esp, 4
mov dword [esp + 0xb8], 0
mov eax, dword [esp + 0xb4]
mov esi, vtable.TextStream.0
mov dword [esp + 0x84], esi
test eax, eax
je 0x46e253
push eax
call fcn.004ba14c
add esp, 4
mov dword [esp + 0x40], vtable.TextFile.0
mov dword [esp + 0xe310], 0xe
jmp 0x46c629
mov esi, dword [esp + 0x24]
test esi, esi
je 0x46e28c
mov edx, dword [esp + 0x20]
push edx
push 0
push esi
call fcn.004c16a0
add esp, 0xc
push esi
call fcn.004ba14c
add esp, 4
mov eax, dword [esp + 0xb8]
mov dword [esp + 0x84], vtable.TextMem.0
test eax, eax
je 0x46d311
cmp byte [esp + 0xc0], bl
je 0x46e2b8
push eax
call fcn.004ba14c
add esp, 4
mov dword [esp + 0xb8], ebx
jmp 0x46d311
mov eax, dword [esp + 0x14]
push eax
push 0x4dad68
call fcn.0049be50
mov ecx, dword [esp + 0xe320]
add esp, 4
push eax
call fcn.00473b40
mov esi, dword [esp + 0x24]
mov edi, eax
test esi, esi
je 0x46e306
mov ecx, dword [esp + 0x20]
push ecx
push 0
push esi
call fcn.004c16a0
add esp, 0xc
push esi
call fcn.004ba14c
add esp, 4
mov eax, dword [esp + 0xb8]
mov dword [esp + 0x84], vtable.TextMem.0
test eax, eax
je 0x46e33a
cmp byte [esp + 0xc0], 0
je 0x46e32f
push eax
call fcn.004ba14c
add esp, 4
mov dword [esp + 0xb8], 0
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x84], vtable.TextStream.0
test eax, eax
je 0x46e359
push eax
call fcn.004ba14c
add esp, 4
lea ecx, [esp + 0x40]
mov dword [esp + 0xe310], 0xffffffff
call fcn.0041bc00
mov eax, edi
jmp 0x46e4e3
cmp byte [esp + 0x3ac], 0
je 0x46e438
mov edx, dword [esp + 0xdc]
mov edi, dword [esi + 0x170]
mov dword [esi + 0x170], edx
cmp dword [esp + 0xd4], ebx
je 0x46e3f7
cmp byte [esp + 0x1b], 0
je 0x46e3ac
push 0x4dba9c
jmp 0x46e3b1
push 0x4e2dfc
call fcn.0049be50
add esp, 4
lea ecx, [esp + 0x3ac]
push ecx
push eax
mov ecx, esi
call fcn.00473b40
lea ecx, [esp + 0x20]
mov esi, eax
call fcn.004138f0
lea ecx, [esp + 0x84]
call fcn.0046a770
lea ecx, [esp + 0x40]
mov dword [esp + 0xe310], ebp
call fcn.0041bc00
mov eax, esi
jmp 0x46e4e3
push ebx
push ebx
push ebx
push ebx
push ebx
push 3
lea edx, [esp + 0x3c4]
push edx
mov ecx, esi
call fcn.00470380
test eax, eax
jne 0x46e432
lea ecx, [esp + 0x20]
call fcn.004138f0
lea ecx, [esp + 0x84]
call fcn.0046a770
mov dword [esp + 0xe310], ebp
jmp 0x46e4d8
mov dword [esi + 0x170], edi
cmp dword [esi + 0x48], ebx
je 0x46e45c
cmp dword [esp + 0xec], ebx
jne 0x46e45c
lea eax, [esi + 0x60]
push eax
push 0x4dba9c
call fcn.0049be50
add esp, 4
jmp 0x46e3c1
inc dword [esi + 0x170]
lea ecx, [esp + 0x20]
call fcn.004138f0
lea ecx, [esp + 0x84]
call fcn.0046a770
lea ecx, [esp + 0x40]
mov dword [esp + 0xe310], ebp
call fcn.0041bc00
mov eax, 1
jmp 0x46e4e3
xor ebx, ebx
fldz
mov ecx, dword [esp + 0xe31c]
sub esp, 8
fstp qword [esp]
push ebx
push ecx
push ebx
push 0x4e2cf4
call fcn.0049be50
add esp, 4
push eax
call fcn.004a77b0
add esp, 0x18
lea ecx, [esp + 0x20]
call fcn.004138f0
lea ecx, [esp + 0x84]
call fcn.0046a770
mov dword [esp + 0xe310], 0xffffffff
lea ecx, [esp + 0x40]
call fcn.0041bc00
xor eax, eax
mov ecx, dword [esp + 0xe308]
pop edi
pop esi
pop ebp
mov dword fs:[0], ecx
pop ebx
add esp, 0xe304
ret 8