Function at 0x43b0d0
Capabilities:
Get keyboard layout

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4b68a5
mov eax, dword fs:[0]
push eax
mov eax, 0x8110
mov dword fs:[0], esp
call fcn.004b5610
push ebx
mov ebx, ecx
push esi
push edi
mov dword [ebp - 0x14], ebx
cmp dword [ebx + 0x44], 0
jne 0x43b10a
cmp dword [ebx + 0x58], 0
mov byte [ebp - 0x36], 0
je 0x43b10e
mov byte [ebp - 0x36], 1
mov dword [ebp - 0x2c], 0
mov dword [ebp - 0x28], 0
mov dword [ebp - 0x24], 0
mov dword [ebp - 0x20], 0x1000
mov dword [ebp - 0x1c], 3
mov dword [ebp - 4], 0
mov dword [ebp - 0x64], 0
mov dword [ebp - 0x60], 0
mov dword [ebp - 0x5c], 0
mov dword [ebp - 0x58], 0x1000
mov dword [ebp - 0x54], 3
mov eax, dword [ebp + 0xc]
mov byte [ebp - 4], 1
push 0x2000
push 0
mov dword [ebx + 0x27c], eax
mov dword [ebp - 0x50], 0
call fcn.0049ee28
add esp, 8
test eax, eax
je 0x43c634
mov esi, dword [ebp - 0x5c]
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x24], 0x1000
test esi, esi
je 0x43b19b
add esi, esi
jmp 0x43b19e
mov esi, dword [ebp - 0x58]
lea eax, [esi + esi]
push eax
push dword [ebp - 0x64]
call fcn.0049ee28
add esp, 8
test eax, eax
je 0x43c634
mov dword [ebp - 0x64], eax
xor ecx, ecx
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 0x5c], esi
mov word [eax], cx
cmp dword [ebp - 0x28], 0xffffffff
je 0x43beee
mov eax, dword [ebp - 0x30]
mov dword [ebp - 0x44], eax
mov al, byte [ebp - 0xf]
mov byte [ebp - 0xd], al
mov eax, dword [ebp - 0x30]
mov dword [ebp - 0x68], eax
nop
mov eax, dword [ebp - 0x50]
mov ecx, ebx
mov dword [ebx + 0x280], eax
lea eax, [ebp - 0x6c]
push eax
lea eax, [ebp - 0x50]
mov dword [ebx + 0x644], 0
push eax
lea eax, [ebp - 0x64]
push eax
lea eax, [ebp - 0x2c]
push eax
push dword [ebp + 8]
call fcn.0043d020
test eax, eax
je 0x43c5f5
cmp dword [ebp - 0x28], 0
je 0x43bec7
nop
mov eax, dword [ebp - 0x2c]
xor esi, esi
xor ebx, ebx
cmp word [eax], 0x3a
jne 0x43b331
movzx edx, word [eax + 2]
test dx, dx
je 0x43b331
lea edi, [eax + 2]
mov dword [ebp - 0x44], edi
cmp edx, 0x3a
je 0x43b267
push 0x3a
push edi
call fcn.0049c891
mov esi, eax
add esp, 8
mov eax, dword [ebp - 0x2c]
lea ecx, [esi + 2]
neg esi
sbb esi, esi
and esi, ecx
mov dword [ebp - 0x34], esi
jmp 0x43b279
cmp word [eax + 4], bx
lea ecx, [eax + 4]
je 0x43b331
mov esi, ecx
mov dword [ebp - 0x34], ecx
test esi, esi
je 0x43b331
mov al, byte [0x4e7da0]
mov byte [ebp - 0xd], al
cmp edi, esi
jae 0x43b2c5
nop dword [eax]
movzx eax, word [edi]
add edi, 2
mov edx, eax
mov esi, eax
and eax, 0xffdf
add edx, 0xffffff9f
movzx ecx, ax
cmp dx, 0x19
mov eax, esi
mov esi, dword [ebp - 0x34]
cmova ecx, eax
cmp cx, 0x58
je 0x43b2bd
cmp edi, esi
jb 0x43b290
jmp 0x43b2c5
cmp word [edi], 0x30
setne byte [ebp - 0xd]
movzx eax, word [esi]
mov edx, eax
test ax, ax
je 0x43b2f3
mov ecx, eax
movzx edx, cx
cmp cx, 0x60
je 0x43b2f8
movzx edx, cx
cmp cx, 0x3a
je 0x43b2f3
movzx eax, word [esi + 2]
add esi, 2
mov ecx, eax
mov edx, eax
test ax, ax
jne 0x43b2d1
test dx, dx
je 0x43b324
lea edi, [esi + 2]
cmp dx, 0x3a
jne 0x43b398
test ebx, ebx
jne 0x43b414
cmp word [edi], dx
jne 0x43b414
cmp byte [ebp - 0xd], 0
mov ebx, esi
mov esi, edi
je 0x43b414
test ebx, ebx
jne 0x43b44e
mov eax, dword [ebp - 0x2c]
xor esi, esi
push 0x4d5fb8
push eax
mov dword [ebp - 0x34], esi
call fcn.0049d27e
mov ebx, eax
add esp, 8
test ebx, ebx
je 0x43b457
mov ecx, dword [ebp - 0x2c]
cmp ebx, ecx
jne 0x43b35d
cmp word [ebx + 4], 0x3a
jne 0x43b35d
add ebx, 2
mov esi, ebx
cmp ebx, ecx
jbe 0x43b377
movzx eax, word [esi]
cmp eax, 0x20
je 0x43b370
cmp eax, 9
jne 0x43b377
sub esi, 2
cmp esi, ecx
ja 0x43b363
movzx edi, word [esi]
xor eax, eax
mov word [esi], ax
mov ecx, dword [ebp - 0x2c]
movzx eax, word [ecx]
cmp eax, 0x20
je 0x43b393
cmp eax, 9
jne 0x43b41c
add ecx, 2
jmp 0x43b382
movzx eax, word [edi]
add eax, 0xffffff9f
cmp eax, 0x15
ja case.0x43b3aa.99
movzx eax, byte [eax + 0x43c69c]
jmp dword [eax*4 + 0x43c678]
mov eax, 7
jmp 0x43b3e7
mov eax, 8
jmp 0x43b3e7
mov eax, 0xc
jmp 0x43b3e7
mov eax, 0xa
jmp 0x43b3e7
mov eax, 0xd
jmp 0x43b3e7
mov eax, 9
jmp 0x43b3e7
mov eax, 0xb
jmp 0x43b3e7
mov eax, 0x20
mov word [edi], ax
mov ecx, edi
lea edx, [ecx + 2]
nop
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x43b3f0
sub ecx, edx
sar ecx, 1
lea eax, [ecx*2 + 2]
push eax
push edi
push esi
call fcn.0049c940
add esp, 0xc
dec dword [ebp - 0x28]
add esi, 2
jmp 0x43b2c5
push 0
xor edx, edx
call fcn.00415500
add esp, 4
mov dword [ebp - 0x68], eax
test eax, eax
je 0x43c5f5
xor ecx, ecx
mov word [esi], di
cmp eax, 4
cmove ebx, ecx
mov ecx, dword [ebp - 0x44]
mov dword [ebp - 0x44], ecx
mov cl, byte [ebp - 0xd]
mov byte [ebp - 0xd], cl
test ebx, ebx
je 0x43b457
cmp ebx, dword [ebp - 0x2c]
ja 0x43b67a
mov ecx, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x28]
mov ebx, dword [ebp - 0x14]
cmp word [ecx + eax*2 - 2], 0x3a
jne 0x43b4b7
cmp dword [ebx + 0x58], 0
je 0x43b479
mov eax, dword [0x4e37f8]
cmp dword [eax + 0x18], 0
je 0x43b4b7
mov esi, dword [ebp - 0x2c]
nop dword [eax]
movzx eax, word [esi]
cmp eax, 0x7f
ja 0x43b49b
push eax
call fcn.004a3030
add esp, 4
test eax, eax
jne 0x43b49b
cmp word [esi], 0x5f
jne 0x43b4a0
add esi, 2
jmp 0x43b480
mov edi, dword [ebp - 0x2c]
mov eax, esi
sub eax, edi
sar eax, 1
inc eax
cmp eax, dword [ebp - 0x28]
jne 0x43b4b7
cmp esi, edi
ja 0x43bff3
mov edi, dword [ebp - 0x2c]
cmp word [edi], 0x23
jne 0x43b529
push 6
push 0x4d1cb0
push edi
call fcn.0049ee82
add esp, 0xc
test eax, eax
jne 0x43b507
mov eax, dword [ebp - 0x2c]
movzx ecx, word [eax + 0xc]
cmp ecx, 0x20
je 0x43b4e5
cmp ecx, 9
jne 0x43b50a
lea eax, [ebp - 0x6c]
mov ecx, ebx
push eax
lea eax, [ebp - 0x50]
push eax
lea eax, [ebp - 0x64]
push eax
lea eax, [ebp - 0x2c]
push eax
push dword [ebp + 8]
call fcn.0043c890
test eax, eax
je 0x43c5f5
mov eax, dword [ebp - 0x2c]
mov esi, dword [ebx + 0x280]
mov ecx, ebx
push eax
call fcn.0043dae0
test eax, eax
je 0x43c5f5
cmp eax, 3
je 0x43c160
mov eax, dword [ebp - 0x2c]
movzx ecx, word [eax]
cmp ecx, 0x7b
je 0x43b53d
cmp ecx, 0x7d
jne 0x43c174
mov edx, dword [ebx + 0x58]
test edx, edx
je 0x43b5fe
mov eax, dword [0x4e37f8]
cmp dword [eax + 0x18], 0
jne 0x43b5fe
cmp ecx, 0x7b
je 0x43c5a2
cmp dword [ebx + 0x274], 0
je 0x43b599
mov eax, dword [ebx + 0x278]
mov dword [ebx + 0x274], 0
test eax, eax
je 0x43b621
push eax
call fcn.0049ee02
add esp, 4
mov dword [ebx + 0x278], 0
jmp 0x43b621
lea eax, [edx - 1]
mov dword [ebx + 0x58], eax
mov edi, dword [ebx + eax*4 + 0x5c]
lea eax, [ebp - 0x30]
push eax
push 0x4d6f98
mov ecx, edi
call fcn.00478fc0
test eax, eax
je 0x43b5c1
cmp dword [eax + 8], 5
jne 0x43b5c1
mov esi, dword [eax]
jmp 0x43b5c3
xor esi, esi
mov ecx, edi
call fcn.00475a10
mov ecx, esi
call fcn.00475a10
mov eax, dword [ebx + 0x58]
mov eax, dword [ebx + eax*4 + 0x5c]
push eax
mov ecx, dword [eax]
call dword [ecx + 8]
lea esi, [ebx + 0x70]
push 0x2e
push esi
call fcn.0049c7ee
add esp, 8
test eax, eax
je 0x43b5f7
xor ecx, ecx
mov word [eax], cx
jmp 0x43b621
xor eax, eax
mov word [esi], ax
jmp 0x43b621
push 0
cmp ecx, 0x7b
mov ecx, ebx
push 0
setne al
push 0
add al, 3
push 0
movzx eax, al
push eax
call fcn.00440020
test eax, eax
je 0x43c5f5
mov ecx, dword [ebp - 0x2c]
movzx eax, word [ecx + 2]
add ecx, 2
cmp eax, 0x20
je 0x43b624
cmp eax, 9
je 0x43b624
test ax, ax
je 0x43bec7
mov edi, dword [ebp - 0x2c]
mov eax, ecx
mov edx, dword [ebp - 0x28]
sub eax, edi
sar eax, 1
sub edx, eax
mov dword [ebp - 0x28], edx
lea eax, [edx*2 + 2]
push eax
push ecx
push edi
call fcn.0049c940
add esp, 0xc
mov dword [ebx + 0x644], 0
cmp dword [ebp - 0x28], 0
jne 0x43b220
jmp 0x43bec7
mov eax, dword [0x4e37f8]
mov esi, dword [ebp - 0x14]
mov eax, dword [eax + 0x18]
test eax, eax
je 0x43b692
cmp eax, dword [esi + 0x1c]
jne 0x43c549
cmp dword [esi + 0x58], 0
jne 0x43c549
xor eax, eax
mov word [ebx], ax
add ebx, 4
mov dword [ebp - 0x3c], ebx
mov ecx, ebx
nop dword [eax]
movzx eax, word [ecx]
cmp eax, 0x20
je 0x43b6bd
cmp eax, 9
jne 0x43b6c2
add ecx, 2
jmp 0x43b6b0
cmp eax, 0x7b
jne 0x43b6d3
cmp word [ecx + 2], 0
jne 0x43b6d3
lea edx, [eax - 0x7a]
jmp 0x43b6d5
xor dl, dl
mov edi, dword [ebp - 0x34]
mov dword [ebp - 0x30], edx
test edi, edi
je 0x43b6e9
cmp byte [ebp - 0xd], 0
je 0x43bdd8
mov dword [ebp - 0x3c], ecx
test edi, edi
jne 0x43bdd8
cmp word [ecx], 0x60
mov ebx, ecx
mov dword [ebp - 0x3c], ecx
jne 0x43b70d
cmp word [ecx + 2], 0x7b
lea eax, [ecx + 2]
cmove ebx, eax
mov dword [ebp - 0x3c], ebx
mov edi, ebx
test dl, dl
jne 0x43bbdc
cmp word [ebx], 0
je 0x43bbdc
movzx eax, word [ebx + 2]
mov ecx, eax
test ax, ax
je 0x43b780
nop dword [eax]
cmp ax, 0x20
je case.0x43b748.34
movzx eax, word [edi]
add eax, 0xffffffdf
cmp eax, 0x5d
ja case.0x43b748.34
movzx eax, byte [eax + 0x43c6bc]
jmp dword [eax*4 + 0x43c6b4]
movzx eax, word [edi + 4]
add edi, 2
test ax, ax
jne 0x43b730
push 0
call dword [sym.imp.USER32.dll_GetKeyboardLayout]
push eax
push ecx
push 0
xor edx, edx
mov ecx, edi
call fcn.0041caf0
add esp, 0xc
mov byte [ebp - 0xe], al
test al, al
je 0x43bbe4
jmp 0x43b784
mov byte [ebp - 0xe], 0xff
mov esi, dword [ebp - 0x2c]
cmp word [esi], 0
je case.0x43b7b0.34
movzx eax, word [esi + 2]
mov ecx, eax
test ax, ax
je case.0x43b7b0.34
cmp ax, 0x20
je case.0x43b7b0.34
movzx eax, word [esi]
add eax, 0xffffffdf
cmp eax, 0x5d
ja case.0x43b7b0.34
movzx eax, byte [eax + 0x43c724]
jmp dword [eax*4 + 0x43c71c]
movzx eax, word [esi + 4]
add esi, 2
test ax, ax
jne 0x43b798
push 0
call dword [sym.imp.USER32.dll_GetKeyboardLayout]
push eax
push ecx
push 0
xor edx, edx
mov ecx, esi
call fcn.0041caf0
add esp, 0xc
mov byte [ebp - 0xf], al
push 0x4d30b4
push esi
call fcn.0049d27e
mov ebx, eax
add esp, 8
mov al, byte [ebp - 0xf]
lea ecx, [eax - 1]
cmp cl, 5
ja 0x43b7fd
cmp al, 3
jne 0x43b803
add al, 0x66
cmp al, 5
ja 0x43b807
mov cl, 1
jmp 0x43b809
xor cl, cl
mov dl, byte [ebp - 0xe]
mov al, dl
dec al
cmp al, 5
ja 0x43b819
cmp dl, 3
jne 0x43b821
mov al, dl
add al, 0x66
cmp al, 5
ja 0x43b825
mov al, 1
jmp 0x43b827
xor al, al
mov byte [ebp - 0x15], al
test cl, cl
jne 0x43b836
mov byte [ebp - 0x35], 1
test al, al
jne 0x43b83a
mov byte [ebp - 0x35], 0
mov ecx, esi
lea edx, [ecx + 2]
nop
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x43b840
sub ecx, edx
sar ecx, 1
cmp ecx, 1
jne 0x43b867
movzx eax, word [esi]
push eax
call dword [sym.imp.USER32.dll_IsCharUpperW]
test eax, eax
mov eax, 0x4d6040
jne 0x43b86c
mov eax, 0x4cdea8
push dword [ebp - 0x2c]
test ebx, ebx
mov ecx, 0x4d1a74
push eax
mov eax, 0x4cdea8
cmove eax, ecx
push eax
push 0x4d4890
lea eax, [ebp - 0x110]
push 0x20
push eax
call fcn.004816a0
movzx eax, word [edi]
add esp, 0x18
cmp eax, 0x22
je 0x43b8c0
cmp eax, 0x60
je 0x43b8c0
push 0x1f
lea eax, [ebp - 0xd0]
push edi
push eax
call fcn.004aa2f4
add esp, 0xc
xor eax, eax
mov word [ebp - 0x92], ax
jmp 0x43b8dc
mov word [ebp - 0xce], ax
mov ecx, 0x60
xor eax, eax
mov word [ebp - 0xd0], cx
mov word [ebp - 0xcc], ax
mov ebx, dword [ebp - 0x3c]
lea eax, [ebp - 0x80]
push 7
push ebx
push eax
call fcn.004aa2f4
sub edi, ebx
xor eax, eax
sar edi, 1
add esp, 0xc
mov word [ebp - 0x72], ax
cmp edi, 8
jae 0x43b902
mov word [ebp + edi*2 - 0x80], ax
cmp word [ebp - 0x80], 0
jne 0x43b92b
cmp byte [ebp - 0xe], 0x13
jne 0x43b92b
lea eax, [ebp - 0xd0]
push 0x4cf1f0
push eax
call fcn.0049ed01
add esp, 8
test eax, eax
je 0x43bbe4
mov ebx, dword [ebp - 0x14]
mov ecx, ebx
cmp dword [ebx + 0x1c], 0
jne 0x43be5a
call fcn.0044f3a0
test eax, eax
je 0x43c5f5
lea eax, [ebp - 0x16]
push eax
lea edx, [ebp - 0x40]
lea ecx, [ebp - 0x110]
call fcn.00415d80
mov ecx, dword [ebx + 0x1c]
add esp, 4
push dword [ebp - 0x40]
test eax, eax
je 0x43b970
push ecx
mov ecx, eax
call fcn.00415410
jmp 0x43b981
lea eax, [ebp - 0x110]
xor edx, edx
push eax
call fcn.00414af0
add esp, 8
test eax, eax
je 0x43c5f5
cmp byte [ebp - 0x15], 0
mov ecx, 0x4cf484
mov eax, 0x4cf49c
cmove eax, ecx
push eax
lea eax, [ebp - 0x8118]
push 0x4d60ac
push eax
call fcn.00406520
add esp, 0xc
lea ebx, [ebp - 0x8118]
cmp byte [ebp - 0x35], 0
lea ebx, [ebx + eax*2]
je 0x43b9d6
lea eax, [ebp - 0xd0]
push eax
push 0x4d60bc
push ebx
call fcn.00406520
add esp, 0xc
lea ebx, [ebx + eax*2]
mov eax, dword [ebp - 0x44]
lea edi, [ebp - 0x8c]
mov dword [ebp - 0x44], eax
mov esi, 0x4d60e8
mov al, byte [ebp - 0xd]
mov ecx, 0x21
mov byte [ebp - 0xd], al
mov eax, dword [ebp - 0x68]
mov dword [ebp - 0x68], eax
push ecx
lea eax, [ebp - 0x110]
push eax
call fcn.0049c891
add esp, 8
test eax, eax
je 0x43ba30
cmp word [eax + 2], 0
je 0x43ba30
movzx eax, word [esi]
push eax
lea eax, [ebp - 0x80]
push eax
call fcn.0049c891
add esp, 8
test eax, eax
jne 0x43ba30
mov ax, word [esi]
mov word [edi], ax
add edi, 2
movzx eax, word [esi + 2]
add esi, 2
mov ecx, eax
test ax, ax
jne 0x43b9f8
xor eax, eax
mov ecx, 0x4cdea8
mov word [edi], ax
movzx eax, byte [ebp - 0xe]
sub eax, 0x12
je 0x43ba5d
sub eax, 0x92
je 0x43ba5d
sub eax, 1
jne 0x43ba7e
movzx eax, byte [ebp - 0xf]
sub eax, 0x11
je 0x43ba79
sub eax, 0x91
je 0x43ba79
sub eax, 1
jne 0x43ba7e
mov ecx, 0x4d610c
jmp 0x43ba7e
mov ecx, 0x4d60f4
lea eax, [ebp - 0xd0]
push eax
lea eax, [ebp - 0x80]
push eax
push ecx
lea eax, [ebp - 0x8c]
push eax
push 0x4d6128
push ebx
call fcn.00406520
mov ebx, dword [ebp - 0x14]
add esp, 0x18
mov ecx, ebx
push 0
push 0
push 0
push 0
push 3
call fcn.00440020
test eax, eax
je 0x43c5f5
push 0
push 0
push 0
lea eax, [ebp - 0x8118]
mov ecx, ebx
push eax
call fcn.0043eb30
test eax, eax
je 0x43c5f5
push 0
push 0
push 0
push 0
push 4
mov ecx, ebx
call fcn.00440020
test eax, eax
je 0x43c5f5
lea eax, [ebp - 0x110]
push eax
lea eax, [ebp - 0x8118]
push 0x4d6168
push eax
call fcn.00406520
add esp, 0xc
mov ecx, ebx
call fcn.0044f3a0
test eax, eax
je 0x43c5f5
lea eax, [ebp - 0x16]
push eax
lea edx, [ebp - 0x40]
lea ecx, [ebp - 0x8118]
call fcn.00415d80
mov ecx, dword [ebx + 0x1c]
add esp, 4
push dword [ebp - 0x40]
test eax, eax
je 0x43bb43
push ecx
mov ecx, eax
call fcn.00415410
jmp 0x43bb54
lea eax, [ebp - 0x8118]
xor edx, edx
push eax
call fcn.00414af0
add esp, 8
test eax, eax
je 0x43c5f5
cmp byte [ebp - 0x15], 0
lea eax, [ebp - 0xd0]
push eax
mov ecx, 0x4cf484
mov eax, 0x4cf49c
cmove eax, ecx
push eax
lea eax, [ebp - 0x8118]
push 0x4d6174
push eax
call fcn.00406520
add esp, 0x10
mov ecx, ebx
push 0
push 0
push 0
push 0
push 3
call fcn.00440020
test eax, eax
je 0x43c5f5
push 0
push 0
push 0
lea eax, [ebp - 0x8118]
mov ecx, ebx
push eax
call fcn.0043eb30
test eax, eax
je 0x43c5f5
push 0
push 0
push 0
push 0
push 4
mov ecx, ebx
call fcn.00440020
test eax, eax
je 0x43c5f5
jmp 0x43bec7
test ebx, ebx
je 0x43bc72
cmp word [ebx], 0
je 0x43bc72
push 0x4d4a90
push ebx
call fcn.0049ed01
add esp, 8
test eax, eax
jne 0x43bc07
mov edi, 0x7ffe
jmp 0x43bc74
push 0x4d4aa0
push ebx
call fcn.0049ed01
add esp, 8
test eax, eax
jne 0x43bc20
mov edi, 0x7ffd
jmp 0x43bc74
push 0x4d4ab8
push ebx
call fcn.0049ed01
add esp, 8
test eax, eax
jne 0x43bc39
mov edi, 0x7ffc
jmp 0x43bc74
push 0x4d4ad0
push ebx
call fcn.0049ed01
add esp, 8
test eax, eax
jne 0x43bc52
mov edi, 0x7ffb
jmp 0x43bc74
push 0x4d4aec
push ebx
call fcn.0049ed01
add esp, 8
neg eax
sbb edi, edi
and edi, 0xffff8006
add edi, 0x7ffa
jmp 0x43bc74
xor edi, edi
mov ecx, dword [ebp - 0x2c]
lea eax, [ebp - 0x16]
push eax
lea edx, [ebp - 0x40]
mov dword [ebp - 0x4c], edi
call fcn.00415d80
mov esi, eax
add esp, 4
test esi, esi
je 0x43bd3c
test di, di
je 0x43bcd4
mov word [esi + 6], di
mov edi, dword [ebp - 0x34]
cmp word [ebx], 0
je 0x43bec4
cmp byte [ebp - 0x30], 0
je 0x43bf1c
mov ebx, dword [ebp - 0x14]
mov ecx, ebx
push 0
push 0
push 0
push 0
push 3
call fcn.00440020
test eax, eax
je 0x43c5f5
jmp 0x43bec7
mov ecx, dword [esi + 0x20]
test ecx, ecx
je 0x43bcf3
mov eax, dword [0x4e37f8]
mov eax, dword [eax + 0x58]
cmp dword [ecx + 8], eax
je 0x43c516
mov ecx, dword [ecx + 0xc]
test ecx, ecx
jne 0x43bce3
mov edi, dword [ebp - 0x14]
cmp dword [edi + 0x1c], 0
jne 0x43bd0b
mov ecx, edi
call fcn.0044f3a0
test eax, eax
je 0x43c5f5
push dword [ebp - 0x40]
mov ecx, esi
push dword [edi + 0x1c]
call fcn.00415410
test eax, eax
je 0x43c530
cmp byte [ebp - 0x16], 0
jne 0x43bd33
cmp byte [0x4e7cdf], 0
je 0x43bc9c
mov byte [esi + 0x14], 1
jmp 0x43bc9c
mov esi, dword [ebp - 0x14]
mov eax, dword [esi + 0x1c]
test di, di
je 0x43bd5c
test eax, eax
je 0x43bd6f
push 0x4cdea8
push 0x4d6048
mov ecx, esi
jmp 0x43c640
test eax, eax
jne 0x43bd6f
mov ecx, esi
call fcn.0044f3a0
test eax, eax
je 0x43c5f5
push dword [ebp - 0x40]
mov ecx, dword [esi + 0x1c]
mov edx, edi
push dword [ebp - 0x2c]
call fcn.00414af0
add esp, 8
test eax, eax
jne 0x43bc9c
cmp dword [ebp - 0x68], 3
jne 0x43c5f5
cmp byte [esi + 0x6dc], al
jne 0x43bc9c
push dword [ebp - 0x2c]
lea eax, [ebp - 0x218]
push 0x4d6238
push 0x80
push eax
call fcn.004816a0
push 0
push 0
xorps xmm3, xmm3
lea ecx, [ebp - 0x218]
mov edx, 0x10000
call fcn.00486b20
add esp, 0x18
jmp 0x43bc9c
cmp word [edi], 0
je 0x43c53a
test dl, dl
je 0x43be37
cmp byte [0x4e7da5], 0
mov esi, dword [ebp - 0x44]
setne bl
cmp esi, edi
jae 0x43be27
movzx eax, word [esi]
mov ecx, eax
add eax, 0xffffff9f
mov edx, ecx
and edx, 0xffffffdf
cmp ax, 0x19
cmova edx, ecx
sub edx, 0x52
je 0x43be15
sub edx, 2
jne 0x43be1d
cmp word [esi + 2], 0x30
setne bl
add esi, 2
cmp esi, edi
jb 0x43bdf7
mov edx, dword [ebp - 0x30]
mov esi, dword [ebp - 0x14]
xor eax, eax
test bl, bl
movzx edx, dl
cmovne edx, eax
mov dword [ebp - 0x30], edx
mov ebx, dword [ebp - 0x3c]
cmp word [ebx], 0
je 0x43be69
test dl, dl
jne 0x43be69
cmp byte [ebp - 0xd], dl
jne 0x43be69
add esi, 0x1c
cmp dword [esi], 0
je 0x43be8e
mov ecx, dword [ebp - 0x14]
dec dword [ecx + 0x280]
push 0x4cdea8
push 0x4d6048
jmp 0x43c640
add esi, 0x1c
cmp dword [esi], 0
jne 0x43be84
mov ecx, dword [ebp - 0x14]
call fcn.0044f3a0
test eax, eax
je 0x43c5f5
mov edx, dword [ebp - 0x30]
cmp byte [ebp - 0xd], 0
jne 0x43be92
test dl, dl
jne 0x43be92
mov eax, ebx
jmp 0x43be97
mov eax, 0x4cdea8
mov ecx, dword [ebp - 0x2c]
mov edx, dword [esi]
push 0
push dword [ebp - 0x6c]
push eax
push edi
push ecx
mov eax, esp
mov dword [eax], edx
mov edx, dword [ebp - 0x44]
call fcn.00416320
add esp, 0x14
test eax, eax
je 0x43c5f5
cmp dword [esi], 0
jne 0x43bc9f
mov ebx, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x64]
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 0x5c]
mov dword [ebp - 0x64], ecx
mov ecx, dword [ebp - 0x24]
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x60]
mov dword [ebp - 0x5c], ecx
mov dword [ebp - 0x28], eax
cmp eax, 0xffffffff
jne 0x43b1e0
cmp byte [ebp - 0x36], 0
jne 0x43c60f
mov eax, dword [ebx + 0x44]
test eax, eax
jne 0x43c5b1
cmp dword [ebx + 0x58], eax
je 0x43c60f
lea eax, [ebx + 0x70]
mov ecx, ebx
push eax
push 0x4d649c
jmp 0x43c640
test edi, edi
je 0x43bf26
movzx eax, byte [ebp - 0xd]
jmp 0x43bf2f
xor eax, eax
cmp word [ebp - 0x4c], ax
sete al
test eax, eax
je 0x43bec4
mov edx, dword [ebp - 0x2c]
mov ecx, ebx
mov eax, dword [ebp - 0x28]
sub ecx, edx
sar ecx, 1
sub eax, ecx
mov dword [ebp - 0x28], eax
add eax, eax
push eax
push ebx
push edx
call fcn.0049c940
mov ecx, dword [ebp - 0x28]
add esp, 0xc
mov eax, dword [ebp - 0x2c]
xor edx, edx
mov ebx, dword [ebp - 0x14]
mov word [eax + ecx*2], dx
lea eax, [ebp - 0x6c]
mov esi, dword [ebx + 0x44]
mov ecx, ebx
push eax
lea eax, [ebp - 0x50]
push eax
lea eax, [ebp - 0x64]
push eax
lea eax, [ebp - 0x2c]
push eax
push dword [ebp + 8]
call fcn.0043c890
test eax, eax
je 0x43c5f5
push 0
push 0
push 0
push 0
push 3
mov ecx, ebx
call fcn.00440020
test eax, eax
je 0x43c5f5
push 0
push 0
push 0
push dword [ebp - 0x2c]
mov ecx, ebx
call fcn.0043eb30
test eax, eax
je 0x43c5f5
push 0
push 0
push 0
push 0
push 4
mov ecx, ebx
call fcn.00440020
test eax, eax
je 0x43c5f5
cmp esi, dword [ebx + 0x44]
je 0x43bec7
mov dword [ebx + 0x644], 0
push 0x4cdea8
push 0x4d6048
mov ecx, ebx
jmp 0x43c640
mov edx, dword [ebp - 0x28]
xor ecx, ecx
mov eax, dword [ebp - 0x2c]
dec edx
mov dword [ebp - 0x28], edx
push 0x4d3590
mov word [eax + edx*2], cx
push dword [ebp - 0x2c]
call fcn.0049ed01
add esp, 8
test eax, eax
jne 0x43c048
mov eax, dword [ebx + 0x44]
test eax, eax
je 0x43c048
mov eax, dword [eax + 0x10]
test eax, eax
je 0x43c048
cmp byte [eax], 0x1a
jne 0x43c048
push 0
push 0
push 0
push 0
push 0x1b
mov ecx, ebx
call fcn.00440020
test eax, eax
je 0x43c5f5
jmp 0x43bec7
cmp dword [ebx + 0x1c], 0
jne 0x43bfe2
mov edi, dword [ebp - 0x2c]
cmp word [edi], 0
je 0x43c5f5
mov eax, dword [0x4e37f8]
lea esi, [ebx + 8]
mov eax, dword [eax + 0x18]
test eax, eax
lea ecx, [eax + 0x34]
mov edx, ecx
cmove edx, esi
mov dword [ebp - 0x34], edx
je 0x43c07c
mov esi, dword [ecx]
add eax, 0x38
jmp 0x43c081
mov esi, dword [esi]
lea eax, [ebx + 0xc]
mov dword [ebp - 0x3c], eax
test esi, esi
je 0x43c09e
push edi
push dword [esi]
call fcn.0049ed01
add esp, 8
test eax, eax
je 0x43c0f1
mov esi, dword [esi + 0xc]
test esi, esi
jne 0x43c088
cmp word [edi], 0
je 0x43c10b
mov esi, edi
lea ecx, [esi + 2]
nop dword [eax]
mov ax, word [esi]
add esi, 2
test ax, ax
jne 0x43c0b0
sub esi, ecx
sar esi, 1
lea eax, [esi + esi]
lea ecx, [eax + 2]
mov dword [ebp - 0x30], eax
call fcn.0047e400
mov ebx, eax
test ebx, ebx
je 0x43c672
test esi, esi
mov esi, dword [ebp - 0x30]
je 0x43c0e9
push esi
push edi
push ebx
call fcn.0049c940
add esp, 0xc
xor eax, eax
mov word [esi + ebx], ax
jmp 0x43c110
push edi
push 0x4d6968
mov ecx, ebx
call fcn.0040d630
test eax, eax
je 0x43c5f5
jmp 0x43bec7
mov ebx, 0x4cdea8
mov ecx, 0x10
call fcn.0047e400
mov ecx, eax
test ecx, ecx
je 0x43c672
mov edx, dword [ebp - 0x3c]
mov dword [ecx + 8], 0
mov dword [ecx], ebx
mov dword [ecx + 4], 0
mov dword [ecx + 0xc], 0
mov eax, dword [edx]
mov dword [ecx + 8], eax
mov eax, dword [ebp - 0x34]
cmp dword [eax], 0
jne 0x43c154
mov dword [eax], ecx
mov dword [edx], ecx
jmp 0x43bec4
mov eax, dword [edx]
mov dword [eax + 0xc], ecx
mov dword [edx], ecx
jmp 0x43bec4
mov eax, dword [ebp + 0xc]
mov dword [ebx + 0x27c], eax
mov dword [ebx + 0x280], esi
jmp 0x43bec7
mov edi, dword [ebp - 0x2c]
push 5
push 0x4d5edc
push edi
call fcn.0049ee82
add esp, 0xc
test eax, eax
jne 0x43c250
movzx eax, word [edi + 0xa]
cmp eax, 0x20
je 0x43c1a1
cmp eax, 9
jne 0x43c250
add edi, 0xc
movzx eax, word [edi]
cmp eax, 0x20
je 0x43c1b1
cmp eax, 9
jne 0x43c1b6
add edi, 2
jmp 0x43c1a4
push eax
push 0x4d5ee8
call fcn.0049c891
add esp, 8
test eax, eax
jne 0x43c250
mov eax, dword [0x4e37f8]
cmp dword [eax + 0x18], 0
jne 0x43c565
mov eax, dword [ebp - 0x2c]
mov edx, dword [ebp - 0x28]
cmp word [eax + edx*2 - 2], 0x7b
jne 0x43c1f3
dec edx
mov ecx, eax
call fcn.004381f0
jmp 0x43c23b
mov edx, dword [ebp - 0x64]
cmp word [edx], 0x7b
jne 0x43c558
lea eax, [edx + 2]
movzx ecx, word [eax]
cmp ecx, 0x20
je 0x43c210
cmp ecx, 9
jne 0x43c215
add eax, 2
jmp 0x43c203
mov ecx, dword [ebp - 0x60]
sub eax, edx
sar eax, 1
sub ecx, eax
mov dword [ebp - 0x60], ecx
je 0x43c236
lea eax, [ecx + ecx]
push eax
lea eax, [edx + 2]
push eax
push edx
call fcn.0049c940
add esp, 0xc
jmp 0x43c23b
xor eax, eax
mov word [edx], ax
push edi
mov ecx, ebx
call fcn.004420d0
test eax, eax
je 0x43c5f5
jmp 0x43bec7
lea eax, [ebp - 0x6c]
mov ecx, ebx
push eax
lea eax, [ebp - 0x50]
push eax
lea eax, [ebp - 0x64]
push eax
lea eax, [ebp - 0x2c]
push eax
push dword [ebp + 8]
call fcn.0043c890
test eax, eax
je 0x43c5f5
cmp dword [ebx + 0x274], 0
mov eax, dword [0x4e37f8]
je 0x43c334
cmp dword [eax + 0x18], 0
jne 0x43c334
push 3
push 0x4d637c
push dword [ebp - 0x2c]
call fcn.0049ee82
add esp, 0xc
test eax, eax
je 0x43c2be
push 3
push 0x4d6384
push dword [ebp - 0x2c]
call fcn.0049ee82
add esp, 0xc
test eax, eax
jne 0x43c574
mov edx, dword [ebp - 0x2c]
lea esi, [edx + 6]
movzx ecx, word [esi]
cmp ecx, 0x20
je 0x43c2d1
cmp ecx, 9
jne 0x43c2d6
add esi, 2
jmp 0x43c2c4
test cx, cx
jne 0x43c2e4
mov eax, dword [ebp - 0x64]
cmp word [eax], 0x7b
je 0x43c304
cmp ecx, 0x7b
jne 0x43c2f0
cmp word [esi + 2], 0
jmp 0x43c2fe
cmp ecx, 0x3d
jne 0x43c577
cmp word [esi + 2], 0x3e
jne 0x43c577
push 0x2e
push dword [ebx + 0x278]
call fcn.0049c891
mov ecx, dword [ebp - 0x2c]
add esp, 8
mov cx, word [ecx]
push esi
mov word [eax + 2], cx
push ecx
mov ecx, ebx
call fcn.00442c30
test eax, eax
je 0x43c5f5
jmp 0x43bec7
cmp dword [ebx + 0x58], 0
je 0x43c4d5
cmp dword [eax + 0x18], 0
jne 0x43c4d5
mov edi, dword [ebp - 0x2c]
push 6
push 0x4d1ca0
push edi
mov byte [ebp - 0x70], 0
call fcn.0049ee82
add esp, 0xc
test eax, eax
jne 0x43c3a7
movzx eax, word [edi + 0xc]
cmp eax, 0x20
je 0x43c371
cmp eax, 9
jne 0x43c3a7
add edi, 0xe
movzx eax, word [edi]
cmp eax, 0x20
je 0x43c381
cmp eax, 9
jne 0x43c386
add edi, 2
jmp 0x43c374
cmp eax, 0x7f
ja 0x43c3a3
push eax
call fcn.004a3030
add esp, 4
test eax, eax
jne 0x43c3a3
cmp word [edi], 0x5f
je 0x43c3a3
mov edi, dword [ebp - 0x2c]
jmp 0x43c3a7
mov byte [ebp - 0x70], 1
mov edx, dword [ebp - 0x64]
mov ecx, edi
call fcn.0043a800
test al, al
je 0x43c3cf
push 0
push dword [ebp - 0x70]
mov ecx, ebx
push edi
call fcn.00441590
test eax, eax
je 0x43c5f5
jmp 0x43bec7
mov esi, edi
movzx eax, word [esi]
cmp eax, 0x7f
ja 0x43c3f3
push eax
call fcn.004a3030
add esp, 4
test eax, eax
jne 0x43c3f3
movzx eax, word [esi]
cmp eax, 0x5f
je 0x43c3f3
cmp eax, 0x2e
jne 0x43c3f8
add esi, 2
jmp 0x43c3d1
cmp esi, edi
jbe 0x43c593
cmp ax, 0x20
je 0x43c40c
cmp ax, 9
jne 0x43c415
movzx eax, word [esi + 2]
add esi, 2
jmp 0x43c400
cmp ax, 0x3a
jne 0x43c43e
cmp word [esi + 2], 0x3d
jne 0x43c593
push dword [ebp - 0x70]
mov ecx, ebx
push edi
call fcn.00442d30
test eax, eax
je 0x43c5f5
jmp 0x43bec7
test ax, ax
je 0x43c464
cmp ax, 0x5b
je 0x43c464
cmp ax, 0x7b
je 0x43c464
cmp ax, 0x3d
jne 0x43c593
cmp word [esi + 2], 0x3e
jne 0x43c593
lea eax, [ebp - 0x45]
mov ecx, ebx
push eax
push dword [ebp - 0x70]
push edi
call fcn.00442900
test eax, eax
je 0x43c5f5
cmp byte [ebp - 0x45], 0
jne 0x43bec7
mov edx, dword [ebp - 0x64]
cmp word [edx], 0x7b
jne 0x43c584
lea eax, [edx + 2]
movzx ecx, word [eax]
cmp ecx, 0x20
je 0x43c4a2
cmp ecx, 9
jne 0x43c4a7
add eax, 2
jmp 0x43c495
mov ecx, dword [ebp - 0x60]
sub eax, edx
sar eax, 1
sub ecx, eax
mov dword [ebp - 0x60], ecx
je 0x43c4cb
lea eax, [ecx + ecx]
push eax
lea eax, [edx + 2]
push eax
push edx
call fcn.0049c940
add esp, 0xc
jmp 0x43bec7
xor eax, eax
mov word [edx], ax
jmp 0x43bec7
mov edx, dword [ebp - 0x64]
mov ecx, dword [ebp - 0x2c]
call fcn.0043a800
mov ecx, ebx
push 0
push 0
test al, al
je 0x43c4ff
push dword [ebp - 0x2c]
call fcn.00441590
test eax, eax
je 0x43c5f5
jmp 0x43bec7
push 0
push dword [ebp - 0x2c]
call fcn.0043eb30
test eax, eax
je 0x43c5f5
jmp 0x43bec7
mov ecx, dword [ebp - 0x14]
push dword [ebp - 0x2c]
push 0x4d6210
mov dword [ecx + 0x644], 0
jmp 0x43c640
push dword [ebp - 0x2c]
mov ecx, edi
jmp 0x43c63b
push dword [ebp - 0x2c]
mov ecx, esi
push 0x4d61b8
jmp 0x43c640
push dword [ebp - 0x2c]
mov ecx, esi
push 0x4d5fc0
jmp 0x43c640
push eax
push 0x4d6364
mov ecx, ebx
jmp 0x43c640
push dword [ebp - 0x2c]
mov ecx, ebx
push 0x4d6320
jmp 0x43c640
mov edx, dword [ebp - 0x2c]
push edx
push 0x4d6390
mov ecx, ebx
jmp 0x43c640
push dword [ebp - 0x2c]
mov ecx, ebx
push 0x4d63d8
jmp 0x43c640
push dword [ebp - 0x2c]
mov ecx, ebx
push 0x4d6438
jmp 0x43c640
push dword [ebp - 0x2c]
mov ecx, ebx
push 0x4d62fc
jmp 0x43c640
cmp byte [0x4e9604], 0
mov ecx, 0x4e8f30
je 0x43c5d5
push 0
push eax
push 0
push 0x4cdea8
push 0x4d649c
call fcn.0040c800
jmp 0x43c645
cmp byte [0x4e9607], 0
je 0x43c5f9
push dword [eax + 4]
movzx eax, word [eax + 2]
push eax
push 0x4cdea8
push 0x4d649c
call fcn.0040c700
xor esi, esi
jmp 0x43c647
push 0
push eax
push 0x4cdea8
push 0
push 0x4d649c
call fcn.0040d430
jmp 0x43c645
mov ecx, dword [ebx + 0x48]
test ecx, ecx
je 0x43c61d
call fcn.0040d960
jmp 0x43c645
cmp dword [ebx + 0x1c], 0
jne 0x43bfe2
inc dword [ebx + 0x280]
mov esi, 1
jmp 0x43c647
push 0x4cdea8
mov ecx, ebx
push 0x4d1758
call fcn.0040d630
mov esi, eax
push dword [ebp - 0x64]
call fcn.0049ee02
add esp, 4
push dword [ebp - 0x2c]
call fcn.0049ee02
mov ecx, dword [ebp - 0xc]
add esp, 4
mov eax, esi
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
call fcn.0040dba0
nop
mov cl, 0xb3
inc ebx
add byte [eax - 0x40ffbc4d], bh
mov bl, 0x43
add dh, al
mov bl, 0x43
add ch, cl
mov bl, 0x43
add dl, ah
mov bl, 0x43
add ah, dl
mov bl, 0x43
add bl, bl
mov bl, 0x43
add dl, ch
mov bl, 0x43
add byte [eax], al
add dword [eax], ecx
or byte [eax], cl
add cl, byte [eax]
or byte [eax], cl
or byte [eax], cl
or byte [eax], cl
add ecx, dword [eax]
or byte [eax], cl
add al, 5
push es
or byte [edi], al
nop
dec edi
mov bh, 67
add byte [ebx - 0x49], bl
inc ebx
add byte [eax], al
add dword [eax], eax
add byte [ecx], al
add dword [ecx], eax
add dword [ecx], eax
add byte [eax], al
add dword [ecx], eax
add dword [ecx], eax
add dword [ecx], eax
add dword [ecx], eax
add dword [ecx], eax
add dword [ecx], eax
add dword [ecx], eax
add dword [ecx], eax
add byte [ecx], al
add byte [ecx], al
add dword [ecx], eax
add dword [ecx], eax
add dword [ecx], eax
add dword [ecx], eax
add dword [ecx], eax
add dword [ecx], eax
add dword [ecx], eax
add dword [ecx], eax
add dword [ecx], eax
add dword [ecx], eax
add dword [ecx], eax
add dword [ecx], eax
add dword [ecx], eax
add dword [ecx], eax
add dword [ecx], eax
add byte [ecx], al
add dword [ecx], eax
add dword [ecx], eax
add dword [ecx], eax
add dword [ecx], eax
add dword [ecx], eax
add dword [ecx], eax
add dword [ecx], eax
add dword [ecx], eax
add dword [ecx], eax
add dword [ecx], eax
add dword [ecx], eax
add dword [ecx], eax
add dword [ecx], eax
add dword [ecx], eax
add dword [ecx], eax
add byte [esi - 112], ah
mov bh, 183
inc ebx
add bl, al
mov bh, 0x43
add byte [eax], al
add dword [eax], eax
add byte [ecx], al
add dword [ecx], eax
add dword [ecx], eax
add byte [eax], al
add dword [ecx], eax
add dword [ecx], eax
add dword [ecx], eax
add dword [ecx], eax
add dword [ecx], eax
add dword [ecx], eax
add dword [ecx], eax
add dword [ecx], eax
add byte [ecx], al
add byte [ecx], al
add dword [ecx], eax
add dword [ecx], eax
add dword [ecx], eax
add dword [ecx], eax
add dword [ecx], eax
add dword [ecx], eax
add dword [ecx], eax
add dword [ecx], eax
add dword [ecx], eax
add dword [ecx], eax
add dword [ecx], eax
add dword [ecx], eax
add dword [ecx], eax
add dword [ecx], eax
add dword [ecx], eax
add byte [ecx], al
add dword [ecx], eax
add dword [ecx], eax
add dword [ecx], eax
add dword [ecx], eax
add dword [ecx], eax
add dword [ecx], eax
add dword [ecx], eax
add dword [ecx], eax
add dword [ecx], eax
add dword [ecx], eax
add dword [ecx], eax
add dword [ecx], eax
add dword [ecx], eax
add dword [ecx], eax
add dword [ecx], eax
add ah, cl
int3