Function at 0x41a4d0
Capabilities:
Contain obfuscated stackstrings
Enumerate pe sections

Disassembly:
mov eax, 0x10ce0
call fcn.00492040
mov eax, dword [esp + 0x10cf0]
push ebx
push ebp
mov ebp, dword [esp + 0x10cec]
push esi
push edi
mov edi, ecx
mov dword [esp + 0x10], edi
test eax, eax
je 0x41a539
lea edx, [esp + 0xe0]
sub edx, eax
nop
movzx ecx, word [eax]
mov word [edx + eax], cx
add eax, 2
test cx, cx
jne 0x41a500
mov eax, dword [esp + 0x10d04]
mov edx, eax
mov dword [esp + 0x24], edx
test eax, eax
je 0x41a551
lea eax, [edx + 2]
movzx ecx, word [eax]
cmp ecx, 0x20
je 0x41a534
cmp ecx, 9
jne 0x41ac90
add eax, 2
jmp 0x41a523
cmp byte [esp + 0x10cf8], 3
jne 0x41a583
xor eax, eax
mov word [esp + 0xe0], ax
mov dword [esp + 0x24], eax
mov byte [esp + 0x17], 0
mov cx, word [0x4ba3ec]
mov byte [esp + 0x16], 0
cmp word [ebp], cx
jne 0x41acf7
movzx eax, word [ebp + 2]
add ebp, 2
cmp eax, 0x20
je 0x41a56c
cmp eax, 9
jne 0x41b4d3
jmp 0x41a56c
mov ecx, dword [0x4ba3fc]
cmp dword [ecx + 0xb4], 0
je 0x41ac64
push 6
push 0x49e064
push ebp
call fcn.00487122
add esp, 0xc
test eax, eax
jne 0x41a5b5
mov ebx, 1
mov dword [esp + 0x1c], ebx
jmp 0x41a5fe
push 5
push 0x49e074
push ebp
call fcn.00487122
add esp, 0xc
test eax, eax
jne 0x41a5da
mov dword [esp + 0x1c], 2
mov ebx, dword [esp + 0x1c]
lea eax, [ebp + 0xa]
jmp 0x41a601
push 6
push 0x49d754
push ebp
call fcn.00487122
add esp, 0xc
test eax, eax
jne 0x41ac64
mov dword [esp + 0x1c], 3
mov ebx, dword [esp + 0x1c]
lea eax, [ebp + 0xc]
movzx ecx, word [eax]
test cx, cx
je 0x41ac15
cmp ecx, 0x20
je 0x41a61b
cmp ecx, 9
jne 0x41ac64
call fcn.00409ce0
mov esi, eax
cmp word [esi], 0
je 0x41ac15
movzx edi, word [esi + 2]
xor edx, edx
push edx
push edx
push esi
mov word [esi + 2], dx
call fcn.0046fb10
add esp, 0xc
mov word [esi + 2], di
test eax, eax
je 0x41ac60
mov ecx, dword [esp + 0x10]
cmp byte [ecx + 0x44], 0
mov edi, dword [0x4ba3fc]
je 0x41a72e
mov eax, dword [edi + 0xb4]
cmp byte [eax + 0x30], 0
jne 0x41a72e
cmp ebx, 2
setne dl
inc dl
mov byte [eax + 0x30], dl
mov eax, dword [edi + 0xb4]
mov ecx, dword [ecx + 4]
xor edx, edx
cmp byte [eax + 0x30], 1
sete dl
xor eax, eax
cmp ebx, 1
sete al
cmp eax, edx
mov al, byte [ecx]
setne byte [esp + 0x17]
cmp al, 0xa
jb 0x41a6a7
cmp al, 0x21
jbe 0x41a6bc
cmp al, 9
je 0x41a6bc
cmp al, 0x68
je 0x41a6bc
cmp al, 0x6a
je 0x41a6bc
mov byte [esp + 0x23], 0
cmp al, 0x69
jne 0x41a6c1
mov byte [esp + 0x23], 1
cmp word [esi], 0
mov byte [esp + 0x16], 0
mov dword [esp + 0x18], esi
je 0x41ac34
mov esi, dword [esp + 0x18]
mov ebx, 0x49e160
mov eax, esi
call fcn.00409c90
mov dword [esp + 0x28], eax
test eax, eax
jne 0x41a707
mov eax, esi
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x41a6f1
sub eax, edx
sar eax, 1
lea eax, [esi + eax*2]
mov dword [esp + 0x28], eax
mov ebp, eax
sub ebp, esi
sar ebp, 1
cmp byte [esp + 0x17], 0
je 0x41a77e
mov edx, dword [0x4ba3fc]
mov eax, dword [edx + 0xb4]
xor ecx, ecx
cmp byte [eax + 0x30], 1
sete cl
lea eax, [ecx + 1]
jmp 0x41a780
mov eax, dword [edi + 0xb4]
movzx edx, byte [eax + 0x30]
cmp ebx, edx
jne 0x41a67c
cmp ebx, 1
jne 0x41a75d
push ebp
push str.HKCU
call fcn.0042e8a0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x10ce0
ret 0x1c
cmp ebx, 2
jne 0x41a67c
push ebp
push 0x49e0f0
call fcn.0042e8a0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x10ce0
ret 0x1c
xor eax, eax
mov esi, dword [esp + 0x18]
mov ebx, dword [esp + 0x10]
push eax
lea ecx, [esp + 0x33]
mov edi, ebp
call fcn.00420c80
mov dword [esp + 0x30], eax
test eax, eax
je 0x41ab6c
cmp byte [esp + 0x2f], 0
jne 0x41ab7b
mov ebx, eax
mov al, byte [ebx + 0x17]
test al, al
jne 0x41a7ba
mov edx, dword [ebx + 0xc]
mov al, byte [edx + 0x17]
cmp al, 1
jne 0x41abf5
mov ecx, dword [esp + 0x18]
push ebp
mov eax, 0x49d4d0
call fcn.0046c750
add esp, 4
test eax, eax
je 0x41abf5
mov ecx, dword [0x4ba3fc]
mov eax, dword [ecx + 0xb4]
xor esi, esi
cmp dword [eax + 0x10], esi
jle 0x41a824
xor edi, edi
mov eax, dword [eax + 0xc]
mov ecx, dword [eax + edi]
mov eax, dword [ecx + 0x18]
mov ecx, dword [esp + 0x18]
push ebp
call fcn.0046c750
add esp, 4
test eax, eax
je 0x41ab99
mov ecx, dword [0x4ba3fc]
mov eax, dword [ecx + 0xb4]
inc esi
add edi, 0x10
cmp esi, dword [eax + 0x10]
jl 0x41a7f1
cmp byte [esp + 0x17], 0
mov esi, dword [esp + 0x10]
je 0x41a846
mov eax, dword [esi + 0x4c]
cmp eax, 0x7d0
jge 0x41abb9
mov edx, dword [esi + 0x48]
mov dword [edx + eax*4], ebx
inc dword [esi + 0x4c]
mov eax, dword [esp + 0x1c]
cmp eax, 3
jne 0x41a855
or byte [ebx + 0x16], 4
jmp 0x41a871
cmp eax, 2
jne 0x41a86c
mov eax, dword [ecx + 0xb4]
cmp byte [eax + 0x30], 3
jne 0x41a871
and byte [ebx + 0x16], 0xfb
jmp 0x41a871
cmp eax, 1
je 0x41a87d
mov al, byte [ebx + 0x16]
test al, al
je 0x41a87d
or al, 8
mov byte [ebx + 0x16], al
mov eax, dword [esp + 0x28]
call fcn.00409ce0
movzx ecx, word [eax]
cmp ecx, 0x3d
ja 0x41a8aa
movzx ecx, byte [ecx + 0x41b6f8]
jmp dword [ecx*4 + 0x41b6e4]
xor bl, bl
xor dl, dl
xor edi, edi
mov ebp, eax
xor esi, esi
jmp 0x41a8c0
movzx ecx, word [eax + esi*2]
cmp ecx, 0x2c
jne 0x41a9ac
test dl, dl
jne 0x41a9da
test edi, edi
jg 0x41a9da
lea eax, [eax + esi*2]
mov esi, dword [esp + 0x18]
mov dword [esp + 0x28], eax
add eax, 0xfffffffe
mov edx, esi
call fcn.00409d00
movzx edx, word [eax + 2]
lea edi, [eax + 2]
xor eax, eax
cmp dword [esp + 0x1c], 3
mov dword [esp + 0x34], edi
mov dword [esp + 0x24], edx
mov word [edi], ax
jne 0x41aa93
mov ecx, dword [esp + 0x30]
mov edx, dword [ecx + 0x18]
movzx ebx, word [0x4ba3f4]
mov eax, ebp
mov dword [esp + 0x38], edx
call fcn.00409ce0
mov ebp, eax
mov ecx, ebp
mov edi, edi
movzx eax, word [ecx]
test ax, ax
je 0x41a955
jmp 0x41a940
cmp ax, bx
je 0x41a9e0
movzx eax, word [ecx + 2]
add ecx, 2
test ax, ax
jne 0x41a940
mov esi, dword [esp + 0x10]
push 0
push 0x101
lea ecx, [esp + 0x40]
push ecx
push 2
push esi
mov dword [esp + 0x50], ebp
call fcn.0041c880
test eax, eax
je 0x41ab6c
mov edx, dword [esi + 4]
mov eax, dword [edx + 0x10]
mov dword [esi + 4], eax
mov dword [eax + 0x14], 0
mov eax, dword [esi + 0xc]
test eax, eax
je 0x41aa70
mov ecx, dword [esi + 0x62c]
mov dword [eax + 0x14], ecx
jmp 0x41aa79
cmp ecx, 0x7d
ja 0x41a9da
movzx ecx, byte [ecx + 0x41b74c]
jmp dword [ecx*4 + 0x41b738]
inc esi
jmp 0x41a8c0
cmp word [ecx], 0
je 0x41a955
movzx eax, word [ecx + 2]
lea esi, [ecx + 2]
add eax, 0xffffff9f
cmp eax, 0x15
ja case.default.0x41aa00
movzx eax, byte [eax + 0x41b7f0]
jmp dword [eax*4 + 0x41b7cc]
mov eax, esi
lea edi, [eax + 2]
mov dx, word [eax]
add eax, 2
test dx, dx
jne 0x41aa47
sub eax, edi
sar eax, 1
lea eax, [eax + eax + 2]
push eax
push esi
push ecx
call fcn.00487350
mov edi, dword [esp + 0x40]
add esp, 0xc
mov ecx, esi
jmp 0x41a930
mov edx, dword [esi + 0x62c]
mov dword [esi + 8], edx
mov ecx, dword [esi + 0xc]
mov eax, dword [esi + 0x62c]
mov dword [eax + 0x10], ecx
mov edx, dword [esi + 0x62c]
mov dword [esi + 0xc], edx
jmp 0x41ab1f
test bl, bl
je 0x41aadc
lea edx, [esp + 0x8ce8]
mov eax, esi
sub edx, esi
movzx ecx, word [eax]
mov word [edx + eax], cx
add eax, 2
test cx, cx
jne 0x41aaa2
push 0
push 0xffffffffffffffff
push 1
push 1
push str.Numpad6
lea eax, [esp + 0x8cfc]
push 0x49b748
push eax
xor eax, eax
call fcn.0046ce50
add esp, 0x1c
lea esi, [esp + 0x8ce8]
cmp byte [esp + 0x23], 0
je 0x41ab05
cmp byte [esp + 0x16], 0
jne 0x41ab05
mov ecx, dword [esp + 0x10]
push 0
push 0
push 0
push 0x6e
push ecx
call fcn.0041c880
test eax, eax
je 0x41ab6c
mov byte [esp + 0x16], 1
mov ecx, dword [esp + 0x10]
push 0
push 0
push 0
push 0
push 0
push 0
push esi
call fcn.0041a4d0
test eax, eax
je 0x41ab6c
mov dx, word [esp + 0x24]
mov eax, dword [esp + 0x28]
mov word [edi], dx
cmp word [eax], 0x2c
jne 0x41ab39
add eax, 2
call fcn.00409ce0
cmp word [eax], 0
mov dword [esp + 0x18], eax
jne 0x41a6d4
cmp byte [esp + 0x16], 0
je 0x41ac34
mov edx, dword [esp + 0x10]
push 0
push 0
push 0
push 0x6f
push edx
call fcn.0041c880
test eax, eax
jne 0x41ac34
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x10ce0
ret 0x1c
mov eax, dword [esp + 0x18]
push eax
push 0x49e16c
mov ecx, ebx
call fcn.0042e8a0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x10ce0
ret 0x1c
mov ecx, dword [esp + 0x18]
push ecx
mov ecx, dword [esp + 0x14]
push 0x49e1f8
call fcn.0042e8a0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x10ce0
ret 0x1c
mov edx, dword [esp + 0x18]
push edx
push 0x49e23c
mov ecx, esi
call fcn.0042e8a0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x10ce0
ret 0x1c
mov ecx, dword [esp + 0x18]
push ecx
mov ecx, dword [esp + 0x14]
push 0x49e1a0
call fcn.0042e8a0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x10ce0
ret 0x1c
cmp ebx, 2
je 0x41ac46
cmp byte [edi + 0x44], 0
je 0x41ac46
mov eax, dword [0x4ba3fc]
mov eax, dword [eax + 0xb4]
cmp byte [eax + 0x30], 0
jne 0x41ac46
mov byte [eax + 0x30], bl
mov eax, 1
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x10ce0
ret 0x1c
push ebp
push 0x49d8f8
mov ecx, edi
call fcn.0042e8a0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x10ce0
ret 0x1c
mov edi, dword [esp + 0x10]
push 1
push ebp
lea ecx, [esp + 0xe8]
push ecx
push edi
call fcn.0041c660
mov edx, eax
mov dword [esp + 0x24], edx
test edx, edx
jne 0x41a520
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x10ce0
ret 0x1c
mov ebp, eax
movzx eax, word [edx + 2]
cmp ax, word [0x4ba3ec]
je 0x41aced
test ax, ax
je 0x41aced
cmp eax, 0x20
je 0x41aced
cmp eax, 9
je 0x41aced
cmp eax, 0x28
jne 0x41a551
lea edx, [esp + 0xe0]
push 0x49d524
push edx
call fcn.004868e9
add esp, 8
test eax, eax
je 0x41aced
lea eax, [esp + 0xe0]
push 0x49d52c
push eax
call fcn.004868e9
add esp, 8
test eax, eax
jne 0x41a551
mov byte [esp + 0x17], 1
jmp 0x41a556
cmp byte [esp + 0x10cf8], 0
jne 0x41b69d
cmp byte [esp + 0x10cfc], 0
jne 0x41b4e1
cmp byte [esp + 0x17], 0
je 0x41b1ec
lea edx, [esp + 0xe0]
push 0x49d524
push edx
call fcn.004868e9
add esp, 8
test eax, eax
jne 0x41b1ec
movzx eax, word [ebp]
cmp eax, 0x28
je 0x41b01c
cmp ax, word [0x4ba3f0]
jne 0x41ad67
movzx eax, word [ebp + 2]
cmp eax, 0x20
je 0x41b01c
cmp eax, 9
je 0x41b01c
mov cx, word [0x4ba3ec]
mov eax, 0x20
mov word [esp + 0x40], ax
mov eax, 0x3a
mov word [esp + 0x42], cx
mov edi, 0x3d
mov word [esp + 0x4c], ax
mov ecx, edi
xor edx, edx
lea ebx, [esp + 0x40]
mov eax, ebp
mov dword [esp + 0x44], 0x90028
mov dword [esp + 0x48], 0x3e003c
mov word [esp + 0x4e], cx
mov dword [esp + 0x50], 0x2d002b
mov dword [esp + 0x54], 0x2f002a
mov dword [esp + 0x58], 0x7e0021
mov dword [esp + 0x5c], 0x7c0026
mov dword [esp + 0x60], 0x5b005e
mov dword [esp + 0x64], 0x3f002e
mov word [esp + 0x68], dx
call fcn.00409c90
test eax, eax
je 0x41adf2
call fcn.00409ce0
mov esi, eax
jmp 0x41ae0a
mov eax, ebp
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x41adf7
sub eax, edx
sar eax, 1
lea esi, [ebp + eax*2]
push 3
push 0x49c2e4
push ebp
call fcn.00487122
add esp, 0xc
test eax, eax
jne 0x41ae38
movzx eax, word [ebp + 6]
push eax
lea eax, [esp + 0x44]
push eax
call fcn.004876b1
add esp, 8
test eax, eax
je 0x41ae38
mov bl, 1
jmp 0x41ae3a
xor bl, bl
movzx eax, word [esi]
add eax, 0xffffffdf
cmp eax, 0x4d
ja 0x41b01c
movzx ecx, byte [eax + 0x41b82c]
jmp dword [ecx*4 + 0x41b808]
mov byte [esp + 0x10cf8], 0x12
jmp 0x41b082
mov eax, ebp
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x41b087
sub eax, edx
sar eax, 1
cmp word [ebp + eax*2 - 2], 0x7b
lea eax, [ebp + eax*2 - 2]
jne 0x41b69d
xor edx, edx
mov word [eax], dx
sub eax, ebp
sar eax, 1
mov esi, ebp
call fcn.00413380
mov byte [esp + 0x16], 1
jmp 0x41b69d
movzx ecx, word [ebp]
movzx eax, word [ebp + 2]
lea edx, [ecx - 0x26]
lea edi, [ebp + 2]
cmp edx, 0x56
ja 0x41b4e1
movzx edx, byte [edx + 0x41b8d8]
jmp dword [edx*4 + 0x41b8b0]
cmp byte [esp + 0x10cf8], 0
jne 0x41b69d
cmp byte [esp + 0x17], 0
je 0x41b54f
cmp byte [esp + 0x10cfc], 0
jne 0x41b54f
lea edi, [esp + 0xe0]
call fcn.0041c780
mov byte [esp + 0x10cf8], al
test al, al
jne 0x41b69d
call fcn.0041c7c0
mov byte [esp + 0x10cfc], al
jmp 0x41b55d
cmp byte [esp + 0x10cf8], 0
jne 0x41b69d
mov al, byte [esp + 0x10cfc]
test al, al
jne 0x41b6b7
lea eax, [esp + 0xe0]
push 0x49e304
push eax
call fcn.004868e9
add esp, 8
test eax, eax
jne 0x41b59d
cmp word [ebp], ax
jne 0x41b59d
mov byte [esp + 0x10cf8], 0x68
mov byte [esp + 0x16], 1
jmp 0x41b69d
movzx ecx, word [ebp]
push ecx
push 0x49e2d0
call fcn.004876b1
add esp, 8
test eax, eax
je 0x41b644
movzx eax, word [ebp]
cmp eax, 0x2b
je 0x41b5c5
cmp eax, 0x2d
jne 0x41b618
cmp word [ebp + 2], ax
jne 0x41b618
cmp word [ebp + 4], 0
je 0x41b5dc
mov byte [esp + 0x10cf8], 3
jmp 0x41b5ff
mov dx, word [0x4ba3ec]
cmp eax, 0x2b
setne al
add al, 4
mov byte [esp + 0x10cf8], al
mov eax, 0x31
mov word [ebp], dx
mov word [ebp + 2], ax
cmp byte [esp + 0x10cf8], 0
mov esi, dword [esp + 0x10cf4]
mov ebp, esi
jne 0x41b69d
jmp 0x41b64b
cmp eax, 0x3f
je 0x41b63b
push 0x3f
push ebp
call fcn.004876b1
add esp, 8
test eax, eax
je 0x41b644
push 0x3a
push eax
call fcn.004876b1
add esp, 8
test eax, eax
je 0x41b644
mov ebp, dword [esp + 0x10cf4]
jmp 0x41b695
mov esi, dword [esp + 0x10cf4]
movzx eax, word [ebp]
cmp eax, 0x28
je 0x41b693
cmp eax, 0x5b
je 0x41b693
cmp word [esi], 0x28
je 0x41b693
push 0x49d644
push esi
call fcn.004876d8
add esp, 8
test eax, eax
mov eax, 0x49e310
jne 0x41b67b
mov eax, 0x49d8f8
mov ecx, dword [esp + 0x10]
push esi
push eax
call fcn.0042e8a0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x10ce0
ret 0x1c
mov ebp, esi
mov byte [esp + 0x10cf8], 3
movzx eax, byte [esp + 0x10cf8]
lea ecx, [eax*8]
sub ecx, eax
lea edx, [ecx*2 + 0x4ba4e0]
jmp 0x41b6ca
movzx eax, al
lea ecx, [eax*8]
sub ecx, eax
lea edx, [ecx*2 + 0x4bb0e0]
push 0x8002
lea eax, [esp + 0xce4]
push 0
push eax
mov dword [esp + 0x28], edx
call fcn.0048f720
mov edx, dword [esp + 0x10d14]
add esp, 0xc
test edx, edx
je 0x41b783
mov ecx, dword [esp + 0x10d0c]
mov eax, ebp
sub eax, dword [esp + 0x24]
sar eax, 1
sub ecx, eax
test ecx, ecx
jle 0x41b720
add ecx, ecx
push ecx
lea edx, [edx + eax*2]
push edx
lea eax, [esp + 0xce8]
push eax
call fcn.0048ebd0
add esp, 0xc
mov al, byte [esp + 0x10cf8]
xor ebx, ebx
cmp al, 0x22
jne 0x41b94d
xor ecx, ecx
xor edi, edi
cmp word [ebp], cx
je 0x41ba32
mov dx, word [0x4ba3ec]
cmp edi, 0x14
jge 0x41b859
movzx eax, word [ebp + ecx*2]
test ax, ax
je 0x41b84e
lea ecx, [ecx]
cmp ax, dx
jne 0x41b773
cmp word [esp + ecx*2 + 0xce0], bx
je 0x41b841
movzx eax, word [ebp + ecx*2 + 2]
inc ecx
test ax, ax
jne 0x41b760
jmp 0x41b84e
xor esi, esi
cmp word [ebp + esi*2], 0
mov ax, word [0x4ba3f4]
je 0x41b7a3
cmp word [ebp + esi*2], ax
je 0x41b7a3
inc esi
cmp word [ebp + esi*2], 0
jne 0x41b793
cmp word [ebp + esi*2], 0
lea edi, [ebp + esi*2]
je 0x41b720
movzx eax, word [edi + 2]
lea ecx, [edi + 2]
add eax, 0xffffff9f
cmp eax, 0x15
ja 0x41b80b
movzx edx, byte [eax + 0x41b9e4]
jmp dword [edx*4 + case.0x41aa00.97]
mov eax, ecx
lea ebx, [eax + 2]
mov dx, word [eax]
add eax, 2
test dx, dx
jne 0x41b810
sub eax, ebx
sar eax, 1
lea edx, [eax + eax + 2]
push edx
push ecx
push edi
call fcn.0048ebd0
mov eax, 1
add esp, 0xc
mov word [esp + esi*2 + 0xce0], ax
inc esi
jmp 0x41b785
lea eax, [ebp + ecx*2]
mov dword [esp + edi*4 + 0x90], eax
inc edi
inc ecx
cmp word [ebp + ecx*2], bx
jne 0x41b746
test edi, edi
je 0x41ba32
cmp edi, 1
jg 0x41b870
mov ebx, 1
jmp 0x41ba32
mov esi, dword [esp + 0x90]
xor ecx, ecx
push ecx
push ecx
push 1
push ecx
mov eax, ebp
mov word [esi], cx
call fcn.0046c530
add esp, 0x10
test eax, eax
jne 0x41b894
mov ebx, 1
mov dx, word [0x4ba3ec]
mov word [esi], dx
test ebx, ebx
jne 0x41ba32
cmp edi, 3
jne 0x41b8fb
mov esi, dword [esp + 0x98]
push ebx
push 1
push 1
push ebx
lea eax, [esi + 2]
call fcn.0046c530
add esp, 0x10
test eax, eax
jne 0x41ba32
lea eax, [esi + 2]
call fcn.00409ce0
mov cx, word [eax]
cmp cx, word [0x4ba3f0]
jne 0x41b8f1
sub eax, ebp
sar eax, 1
cmp word [esp + eax*2 + 0xce0], bx
je 0x41ba32
mov ebx, 3
jmp 0x41ba32
jle 0x41ba32
mov eax, dword [esp + 0x94]
add eax, 2
call fcn.00409ce0
mov dx, word [eax]
cmp dx, word [0x4ba3f0]
jne 0x41b943
mov ecx, eax
sub ecx, ebp
sar ecx, 1
cmp word [esp + ecx*2 + 0xce0], 0
jne 0x41b943
movzx eax, word [eax + 2]
cmp eax, 0x20
je 0x41ba32
cmp eax, 9
je 0x41ba32
mov ebx, 3
jmp 0x41ba32
cmp al, 0x69
jne 0x41ba32
mov esi, ebp
cmp word [ebp], bx
je 0x41b9a7
lea ecx, [ecx]
movzx eax, word [esi]
cmp eax, 0x20
je 0x41b96d
cmp eax, 9
jne 0x41b99f
movzx edx, word [esi + 2]
push edx
call fcn.00488520
add esp, 4
cmp eax, 0x69
jne 0x41b99f
movzx eax, word [esi + 4]
push eax
call fcn.00488520
add esp, 4
cmp eax, 0x6e
jne 0x41b99f
movzx eax, word [esi + 6]
cmp eax, 0x20
je 0x41b9a7
cmp eax, 9
je 0x41b9a7
add esi, 2
cmp word [esi], bx
jne 0x41b960
mov dx, word [0x4ba3ec]
cmp word [esi], bx
jne 0x41b9d6
mov ecx, dword [esp + 0x10cf4]
push ecx
mov ecx, dword [esp + 0x14]
push 0x49e330
call fcn.0042e8a0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x10ce0
ret 0x1c
mov eax, esi
sub eax, ebp
sar eax, 1
mov ecx, 1
test eax, eax
jle 0x41b9f2
cmp word [ebp + eax*2], dx
jne 0x41b9ed
inc ecx
dec eax
test eax, eax
jg 0x41b9e5
mov word [esi + 2], dx
cmp ecx, 1
jle 0x41ba2e
cmp ecx, 2
jle 0x41ba23
mov edx, dword [esp + 0x10cf4]
mov ecx, dword [esp + 0x10]
push edx
push str.Floor
call fcn.0042e8a0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x10ce0
ret 0x1c
mov eax, 0x20
mov word [esi + 4], ax
jmp 0x41ba32
mov word [esi + 4], dx
xor eax, eax
mov byte [esp + 0x28], 0
mov byte [esp + 0x38], 0
mov dword [esp + 0x34], eax
mov dword [esp + 0x30], eax
cmp ebx, eax
je 0x41ba50
mov dword [esp + 0x24], ebx
jmp 0x41ba79
mov ecx, dword [esp + 0x10]
cmp byte [ecx + 0xaa7], al
je 0x41ba6d
mov edx, dword [esp + 0x1c]
movsx eax, byte [edx + 6]
and eax, 0x7f
mov dword [esp + 0x24], eax
jmp 0x41ba79
mov eax, dword [esp + 0x1c]
movsx ecx, byte [eax + 5]
mov dword [esp + 0x24], ecx
xor ebx, ebx
xor esi, esi
mov dword [esp + 0x18], esi
cmp word [ebp], bx
je 0x41bc4c
jmp 0x41ba90
mov esi, dword [esp + 0x18]
cmp esi, dword [esp + 0x24]
jge 0x41bc4c
cmp esi, 2
jne 0x41bb03
mov dl, byte [esp + 0x10cf8]
sub dl, 0x19
cmp dl, 3
ja 0x41baf8
mov ecx, dword [esp + 0x10]
push 0
lea eax, [ebp + ebx*2]
push eax
mov dword [esp + 0x38], eax
lea eax, [esp + 0x2e8]
push eax
push ecx
call fcn.0041c660
mov dword [esp + 0x34], eax
test eax, eax
je 0x41baf8
lea edi, [esp + 0x2e0]
call fcn.0041c780
mov byte [esp + 0x28], al
test al, al
jne 0x41bc4c
call fcn.0041c7c0
mov byte [esp + 0x38], al
cmp byte [esp + 0x38], 0
jne 0x41bc4c
mov ecx, dword [esp + 0x24]
dec ecx
lea edi, [ebp + ebx*2]
lea eax, [esp + ebx*2 + 0xce0]
mov dword [esp + esi*4 + 0x40], edi
mov dword [esp + esi*4 + 0x90], eax
cmp esi, ecx
je 0x41bc47
mov dx, word [edi]
cmp dx, word [0x4ba3f0]
jne 0x41bb4e
cmp word [eax], 0
jne 0x41bb4e
movzx eax, word [edi + 2]
cmp eax, 0x20
je 0x41bc27
cmp eax, 9
je 0x41bc27
cmp byte [esp + 0x10cf8], 0x2b
jne 0x41bb82
cmp esi, 2
je 0x41bb62
cmp esi, 3
jne 0x41bb82
mov esi, dword [esp + 0x44]
call fcn.00414590
cmp eax, 5
ja 0x41bc27
movzx eax, byte [eax + 0x41ba04]
jmp dword [eax*4 + 0x41b9fc]
mov ecx, dword [esp + 0x1c]
add ecx, 7
je 0x41bbb3
mov edx, dword [esp + 0x18]
mov al, byte [ecx]
inc edx
test al, al
je 0x41bbb3
jmp 0x41bba0
movzx eax, al
cmp eax, edx
je 0x41bc22
mov al, byte [ecx + 1]
inc ecx
test al, al
jne 0x41bba0
movzx eax, word [edi]
test ax, ax
je 0x41bbdd
mov cx, word [0x4ba3ec]
cmp ax, cx
jne 0x41bbd2
cmp word [esp + ebx*2 + 0xce0], 0
je 0x41bbdd
movzx eax, word [ebp + ebx*2 + 2]
inc ebx
test ax, ax
jne 0x41bbc2
cmp word [ebp + ebx*2], 0
je 0x41bc0c
mov ecx, dword [esp + 0x18]
mov esi, dword [esp + ecx*4 + 0x40]
xor eax, eax
mov word [ebp + ebx*2], ax
or eax, 0xffffffff
call fcn.00413380
movzx eax, word [ebp + ebx*2 + 2]
inc ebx
cmp eax, 0x20
je 0x41bbfc
cmp eax, 9
je 0x41bbfc
inc dword [esp + 0x18]
cmp word [ebp + ebx*2], 0
jne 0x41ba90
mov esi, dword [esp + 0x18]
jmp 0x41bc4c
cmp byte [ecx], 0
je 0x41bbb3
movzx edx, word [0x4ba3ec]
lea ecx, [esp + 0xce0]
push ecx
push edx
mov eax, ebx
mov ecx, ebp
call fcn.0046e740
add esp, 8
mov ebx, eax
jmp 0x41bbdd
inc esi
mov dword [esp + 0x18], esi
mov edx, dword [esp + 0x1c]
mov al, byte [edx + 4]
movsx ecx, al
cmp esi, ecx
jge 0x41bcb0
cmp al, 1
mov eax, 0x49e3e0
jg 0x41bc68
mov eax, case.0x446207.7
push eax
mov eax, dword [esp + 0x20]
push ecx
mov ecx, dword [eax]
push ecx
push 0x49e3e8
mov esi, 0x400
lea edi, [esp + 0x4f0]
call fcn.0046c6b0
add esp, 0x10
mov edx, dword [esp + 0x10cf4]
push edx
lea eax, [esp + 0x4e4]
push eax
mov ecx, dword [esp + 0x18]
call fcn.0042e8a0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x10ce0
ret 0x1c
xor edi, edi
xor eax, eax
cmp ecx, edi
jle 0x41bcc6
mov edx, dword [esp + eax*4 + 0x40]
inc eax
cmp word [edx], di
je 0x41bce9
cmp eax, ecx
jl 0x41bcb8
mov cl, byte [esp + 0x10cfc]
test cl, cl
je 0x41c0c3
movzx eax, cl
dec eax
cmp eax, 0x13
ja 0x41c0c3
jmp dword [eax*4 + 0x41ba0c]
push eax
mov eax, dword [esp + 0x20]
mov ecx, dword [eax]
push ecx
push 0x49e438
mov esi, 0x400
lea edi, [esp + 0x4ec]
call fcn.0046c6b0
add esp, 0xc
jmp 0x41bc8a
dec eax
push eax
mov dword [esp + 0x58], ecx
mov ecx, dword [esp + 0xac]
push 0x87
push edi
mov dword [esp + 0x5c], esi
mov dword [esp + 0xac], ebp
mov dword [esp + 0xa8], ecx
mov dword [esp + 0x64], ebx
mov dword [esp + 0xb4], ebp
call fcn.0041c880
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x10ce0
ret 0x1c
cmp esi, edi
je 0x41c1af
cmp byte [esp + 0x28], 0
jne 0x41c1af
cmp byte [esp + 0x38], 0
jne 0x41c1af
mov al, byte [esp + 0x10cf8]
lea edx, [eax - 0x13]
cmp dl, 0xe
ja 0x41c1af
cmp al, 0x18
ja 0x41c104
sub cl, 6
cmp cl, 5
ja 0x41c1af
mov ebx, dword [esp + esi*4 + 0x3c]
mov eax, ebx
sub eax, ebp
sar eax, 1
movzx ecx, word [ebp + eax*2]
cmp cx, di
je 0x41c1af
mov dx, word [0x4ba3ec]
cmp cx, dx
jne 0x41c132
cmp word [esp + eax*2 + 0xce0], di
je 0x41c142
movzx ecx, word [ebp + eax*2 + 2]
inc eax
cmp cx, di
jne 0x41c123
jmp 0x41c1af
lea esi, [ebp + eax*2]
movzx ecx, word [ebp + eax*2 + 2]
inc eax
cmp ecx, 0x20
je 0x41c146
cmp ecx, 9
je 0x41c146
mov ecx, dword [esp + 0x10]
lea eax, [ebp + eax*2]
push 0
push eax
mov dword [esp + 0x38], eax
lea eax, [esp + 0x2e8]
push eax
push ecx
call fcn.0041c660
mov dword [esp + 0x34], eax
test eax, eax
je 0x41c1ab
lea edi, [esp + 0x2e0]
call fcn.0041c780
mov byte [esp + 0x28], al
test al, al
jne 0x41c19c
call fcn.0041c7c0
mov byte [esp + 0x38], al
test al, al
je 0x41c1ab
xor edx, edx
mov word [esi], dx
or eax, 0xffffffff
mov esi, ebx
call fcn.00413380
mov esi, dword [esp + 0x18]
mov al, byte [esp + 0x10cf8]
cmp al, 0x68
je 0x41c1be
cmp al, 0x6a
jne 0x41c1cd
cmp esi, 1
jne 0x41c1cd
mov ecx, dword [esp + 0x40]
cmp word [ecx], 0
jne 0x41c1d5
cmp al, 0x69
jne 0x41c223
test esi, esi
je 0x41c223
mov edx, dword [esp + 0x18]
mov esi, dword [esp + edx*4 + 0x3c]
mov eax, esi
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x41c1e2
sub eax, edx
sar eax, 1
cmp word [esi + eax*2 - 2], 0x7b
jne 0x41c223
xor ecx, ecx
mov word [esi + eax*2 - 2], cx
or eax, 0xffffffff
mov byte [esp + 0x16], 1
call fcn.00413380
test eax, eax
jne 0x41c223
cmp byte [esp + 0x10cf8], 0x68
jne 0x41c2d1
mov dword [esp + 0x18], eax
mov ecx, dword [esp + 0x18]
mov edi, dword [esp + 0x10]
lea eax, [esp + 0x90]
push eax
mov eax, dword [esp + 0x10cfc]
push ecx
lea edx, [esp + 0x48]
push edx
push eax
push edi
call fcn.0041c880
test eax, eax
je 0x41ab6c
cmp byte [esp + 0x16], 0
je 0x41c26c
push 0
push 0
push 0
push 0x6e
push edi
call fcn.0041c880
test eax, eax
je 0x41ab6c
cmp byte [esp + 0x28], 0
jne 0x41c27e
cmp byte [esp + 0x38], 0
je 0x41ac34
mov esi, dword [esp + 0x34]
mov eax, esi
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x41c287
sub eax, edx
mov ecx, esi
sub ecx, ebp
sar eax, 1
push eax
sar ecx, 1
lea edx, [esp + ecx*2 + 0xce4]
mov ecx, dword [esp + 0x3c]
push edx
mov edx, dword [esp + 0x30]
push esi
lea eax, [esp + 0x2ec]
push eax
mov eax, dword [esp + 0x40]
push ecx
push edx
push eax
mov ecx, edi
call fcn.0041a4d0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x10ce0
ret 0x1c
mov edx, dword [esp + 0x10cf4]
push edx
push str.CTRLUP
jmp 0x41bc9a