Function at 0x433090
Capabilities:
Get keyboard layout

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x8538
call fcn.00498b00
mov eax, dword [0x4c73f0]
push ebx
xor ebx, ebx
push esi
push edi
mov dword [ebp - 0x10], eax
cmp eax, ebx
jne 0x4330df
cmp dword [0x4c95f0], 1
mov edx, dword [ebp + 8]
sete al
test al, al
sete al
movzx ecx, al
push ecx
push edx
mov dword [0x4c95f0], ebx
call fcn.0042dee0
lea esp, [ebp - 0x8544]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov eax, dword [0x4c7454]
mov edi, dword [0x4c744c]
mov esi, dword [0x4c7450]
mov dword [ebp - 0x30], eax
mov dword [0x4c95f0], ebx
mov dword [0x4c961c], 1
mov word [0x4c9620], bx
mov dword [0x4c962c], 0x3fff
movzx eax, word [edi]
mov dword [ebp - 0x20], esi
mov dword [ebp - 0x28], ebx
mov byte [ebp - 6], bl
cmp ax, bx
je 0x4331f4
lea ebx, [edi + 2]
lea esp, [esp]
movzx esi, ax
test esi, 0xffffff80
jne 0x43314d
push 2
push esi
call fcn.0048e55e
add esp, 8
test eax, eax
je 0x43314d
and esi, 0xffffffdf
movzx eax, si
add eax, 0xffffffd6
cmp eax, 0x2c
ja case.0x433163.43
movzx ecx, byte [eax + 0x434048]
jmp dword [ecx*4 + 0x434020]
mov byte [0x4c961c], 0
jmp case.0x433163.43
mov byte [0x4c961d], 1
jmp case.0x433163.43
mov byte [0x4c961e], 1
jmp case.0x433163.43
mov byte [0x4c961f], 1
jmp case.0x433163.43
push ebx
call fcn.0048e5a6
add esp, 4
mov dword [0x4c962c], eax
cmp eax, 0x3fff
jle case.0x433163.43
mov dword [0x4c962c], 0x3fff
jmp case.0x433163.43
mov esi, ebx
call fcn.004131f0
fmul qword [0x4bd748]
call fcn.0049bc30
mov dword [ebp - 0x28], eax
jmp case.0x433163.43
mov byte [0x4c9620], 1
jmp case.0x433163.43
mov byte [0x4c9621], 1
jmp case.0x433163.43
mov byte [ebp - 6], 1
movzx eax, word [edi + 2]
add edi, 2
add ebx, 2
test ax, ax
jne 0x433130
mov esi, dword [ebp - 0x20]
xor ebx, ebx
push 0xff
lea edx, [ebp - 0x333]
push ebx
push edx
mov byte [ebp - 0x334], 0
call fcn.004961e0
add esp, 0xc
push 0x1ff
lea eax, [ebp - 0x533]
push ebx
push eax
mov byte [ebp - 0x534], 0
call fcn.004961e0
xor ecx, ecx
add esp, 0xc
mov word [ebp - 0x1a], cx
mov dword [ebp - 0xc], ebx
mov eax, esi
mov dword [ebp - 0x14], esi
cmp word [esi], bx
je 0x433403
xor edx, edx
mov word [ebp - 0x1c], dx
movzx ecx, word [eax]
mov eax, ecx
sub eax, 0x7b
je 0x43331f
sub eax, 2
je 0x4333f0
cmp byte [ebp - 6], dl
je 0x43326d
inc dword [ebp - 0xc]
jmp 0x4333f0
push 0
mov word [ebp - 0x1c], cx
mov byte [ebp - 5], dl
call dword [sym.imp.USER32.dll_GetKeyboardLayout]
mov cx, word [ebp - 0x1c]
test cx, cx
je 0x4333f0
cmp word [ebp - 0x1a], 0
jne 0x4332a4
mov ecx, eax
mov eax, dword [ebp - 0x1c]
lea esi, [ebp - 5]
call fcn.004123c0
mov bl, al
jmp 0x4333b7
movzx esi, cx
test esi, 0xffffff80
jne 0x4332c1
push 2
push esi
call fcn.0048e55e
add esp, 8
test eax, eax
je 0x4332c1
and esi, 0xffffffdf
cmp si, 0x56
jne 0x4332ec
mov eax, dword [ebp - 0x1a]
call fcn.00409670
cmp ax, 0x4b
jne 0x4332ec
push 0x10
lea eax, [ebp - 0x18]
push 0
push eax
call fcn.0048e93b
add esp, 0xc
mov bl, al
jmp 0x4333b7
xor esi, esi
mov edi, edi
mov edx, dword [esi*8 + 0x4c46e8]
lea ecx, [ebp - 0x1c]
push ecx
push edx
call fcn.0048d309
add esp, 8
test eax, eax
je 0x433313
inc esi
cmp esi, 0x6d
jl 0x4332f0
jmp 0x4333f0
mov bl, byte [esi*8 + 0x4c46ec]
jmp 0x4333b7
mov ebx, dword [ebp - 0x14]
lea edi, [ebx + 2]
push 0x7d
push edi
call fcn.0048e0e1
mov esi, eax
add esp, 8
test esi, esi
je 0x4333f0
sub eax, ebx
sar eax, 1
dec eax
jne 0x433351
cmp word [esi + 2], 0x7d
jne 0x4333f0
add esi, 2
jmp 0x433356
cmp eax, 1
jne 0x43336b
cmp byte [ebp - 6], 0
je 0x433364
inc dword [ebp - 0xc]
jmp 0x4333f0
mov ax, word [edi]
mov word [ebp - 0x1c], ax
xor ecx, ecx
push ecx
mov word [esi], cx
mov byte [ebp - 5], cl
call dword [sym.imp.USER32.dll_GetKeyboardLayout]
push 1
mov ecx, eax
push 1
lea edx, [ebp - 5]
mov eax, edi
call fcn.004122f0
mov bl, al
add esp, 8
test bl, bl
jne 0x4333ac
mov eax, edi
call fcn.00412250
movzx eax, ax
test ax, ax
je 0x4333ac
mov edx, eax
mov byte [ebp + edx - 0x534], 1
mov eax, 0x7d
mov word [esi], ax
mov dword [ebp - 0x14], esi
test bl, bl
je 0x4333f0
movzx esi, bl
or byte [ebp + esi - 0x334], 1
cmp word [ebp - 0x1c], 0
lea esi, [ebp + esi - 0x334]
je 0x4333f0
mov ecx, dword [ebp - 0x1c]
push ecx
call dword [sym.imp.USER32.dll_IsCharAlphaW]
test eax, eax
jne 0x4333f0
test byte [ebp - 5], 0x30
je 0x4333ed
or byte [esi], 2
jmp 0x4333f0
or byte [esi], 4
mov eax, dword [ebp - 0x14]
add eax, 2
cmp word [eax], 0
mov dword [ebp - 0x14], eax
jne 0x433243
mov eax, dword [ebp - 0xc]
mov dword [0x4c95fc], 0x4a0850
test eax, eax
je 0x433487
lea eax, [eax + eax + 2]
call fcn.004948e0
mov esi, dword [ebp - 0x20]
mov eax, esp
mov dword [0x4c95fc], eax
cmp word [esi], 0
mov ebx, eax
je 0x433482
nop
movzx ecx, word [esi]
mov eax, ecx
sub eax, 0x7b
je 0x433447
sub eax, 2
je 0x433479
mov word [ebx], cx
add ebx, 2
jmp 0x433479
lea edi, [esi + 2]
push 0x7d
push edi
call fcn.0048e0e1
add esp, 8
test eax, eax
je 0x433479
cmp eax, edi
jne 0x433467
cmp word [eax + 2], 0x7d
jne 0x433467
add eax, 2
add esi, 4
cmp eax, esi
jne 0x433477
mov dx, word [edi]
mov word [ebx], dx
add ebx, 2
mov esi, eax
add esi, 2
cmp word [esi], 0
jne 0x433430
xor eax, eax
mov word [ebx], ax
mov ecx, dword [ebp - 0x30]
mov esi, dword [ebp + 8]
xor edi, edi
mov dword [0x4c960c], edi
cmp word [ecx], di
je 0x4336c1
cmp dword [0x4c9608], edi
jne 0x4334ca
push 0x1000
call fcn.0048d394
add esp, 4
mov dword [0x4c9608], eax
cmp eax, edi
je 0x4335b0
mov dword [0x4c9610], 0x400
cmp byte [esi + 1], 3
ja 0x4334d7
xor eax, eax
jmp 0x43355f
mov eax, dword [0x4c73fc]
cmp eax, edi
je 0x433540
mov dl, byte [eax + 0x17]
test dl, dl
jne 0x4334ef
mov ecx, dword [eax + 0xc]
mov cl, byte [ecx + 0x17]
jmp 0x4334f1
mov cl, dl
cmp cl, 1
jne 0x433540
movzx ecx, byte [esi]
lea ebx, [ecx*8]
sub ebx, ecx
test byte [ebx*2 + 0x4c39c6], 0x80
jne 0x433540
cmp dword [0x4c760c], edi
jne 0x433531
test dl, dl
jne 0x43351d
mov ecx, dword [eax + 0xc]
jmp 0x43351f
mov ecx, eax
test byte [ecx + 0x15], 0xa
jne 0x433531
xor edx, edx
cmp dword [ecx + 0xc], edi
setne dl
cmp edx, edi
je 0x433540
cmp eax, dword [0x4c7ca4]
je 0x433540
call fcn.00413740
jmp 0x43355f
mov eax, dword [0x4c7454]
lea edx, [eax + 2]
jmp 0x433550
mov cx, word [eax]
add eax, 2
cmp cx, di
jne 0x433550
sub eax, edx
sar eax, 1
inc eax
cmp eax, dword [0x4c9618]
jbe 0x4335d1
mov dword [0x4c9618], eax
cmp eax, 0x1000
ja 0x43357e
mov dword [0x4c9618], 0x1000
mov eax, dword [0x4c9614]
cmp eax, edi
je 0x433590
push eax
call fcn.0048e96f
add esp, 4
mov eax, dword [0x4c9618]
lea ecx, [eax + eax]
push ecx
call fcn.0048d394
add esp, 4
mov dword [0x4c9614], eax
cmp eax, edi
jne 0x4335d6
mov dword [0x4c9618], edi
push 0x4a0850
push edi
push str.Out_of_memory.
mov ecx, esi
call fcn.0042e0b0
lea esp, [ebp - 0x8544]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov eax, dword [0x4c9614]
mov edx, dword [0x4c9608]
mov ecx, dword [0x4c960c]
mov edi, dword [ebp - 0x30]
mov dword [edx + ecx*4], eax
cmp word [edi], 0
mov esi, dword [0x4c9614]
je 0x4336a1
mov ebx, 0x2c
lea ecx, [ecx]
movzx eax, word [edi]
cmp ax, bx
je 0x433613
mov word [esi], ax
add esi, 2
jmp 0x433694
cmp word [edi + 2], bx
jne 0x433626
mov edx, ebx
mov word [esi], dx
add esi, 2
add edi, 2
jmp 0x433694
xor eax, eax
mov word [esi], ax
mov ecx, dword [0x4c9608]
mov eax, dword [0x4c960c]
mov edx, dword [ecx + eax*4]
cmp word [edx], 0
je 0x43365b
inc eax
mov dword [0x4c960c], eax
add esi, 2
mov dword [ecx + eax*4], esi
xor eax, eax
mov word [esi], ax
mov eax, dword [0x4c960c]
mov ecx, dword [0x4c9608]
cmp word [edi + 2], 0
je 0x433694
mov edx, dword [0x4c9610]
cmp eax, edx
jb 0x433694
lea edx, [edx*4 + 0x1000]
push edx
push ecx
call fcn.0048e5c7
add esp, 8
test eax, eax
je 0x4337cc
add dword [0x4c9610], 0x400
mov dword [0x4c9608], eax
add edi, 2
cmp word [edi], 0
jne 0x433600
xor eax, eax
mov word [esi], ax
mov ecx, dword [0x4c9608]
mov edx, dword [0x4c960c]
mov eax, dword [ecx + edx*4]
cmp word [eax], 0
je 0x4336c1
inc dword [0x4c960c]
cmp byte [0x4c75fd], 0
je 0x4336ff
mov ecx, dword [0x4c74a8]
push 0xc
push ecx
call dword [sym.imp.USER32.dll_KillTimer]
test eax, eax
je 0x4336e4
mov byte [0x4c75fd], 0
push 0x10
call dword [sym.imp.USER32.dll_GetQueueStatus]
shr eax, 0x10
test al, 0x10
je 0x4336ff
push 1
push 0xffffffffffffffff
call fcn.00401360
add esp, 8
or byte [0x4c7eb5], 1
xor edx, edx
cmp dword [0x4c75d8], 0
mov word [ebp - 0x8534], dx
mov dword [0x4c9628], edx
lea eax, [ebp - 0x8534]
lea ecx, [ebp - 0x334]
lea edx, [ebp - 0x534]
mov dword [0x4c9624], eax
mov dword [0x4c95f4], ecx
mov dword [0x4c95f8], edx
mov dword [0x4c95f0], 1
mov byte [0x4c75f8], 1
jne 0x433763
mov eax, dword [0x4c4ac0]
movzx ecx, word [eax]
push ecx
call fcn.00408100
add esp, 4
mov eax, dword [ebp - 0x28]
test eax, eax
jle 0x4337a0
cmp byte [0x4c75fd], 0
jne 0x4337a0
cmp eax, 0xa
jge 0x43377d
mov eax, 0xa
mov edx, dword [0x4c74a8]
push 0x4038b0
push eax
push 0xc
push edx
call dword [sym.imp.USER32.dll_SetTimer]
test eax, eax
setne al
mov byte [0x4c75fd], al
lea esp, [esp]
push 1
push 0x8000012f
call fcn.00401360
mov eax, dword [0x4c95f0]
add esp, 8
cmp eax, 1
je 0x4337a0
add eax, 0xfffffffe
cmp eax, 3
ja case.default.0x4337c5
jmp dword [eax*4 + 0x434078]
mov ecx, dword [ebp + 8]
push 0x4a0850
push 0
push str.Out_of_memory.
call fcn.0042e0b0
lea esp, [ebp - 0x8544]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov ecx, dword [0x4c7ca4]
push 1
push 0
push 0xffffffffffffffff
push str.Timeout
push ecx
call fcn.00476c40
jmp 0x433b6b
mov edx, dword [0x4c7ca4]
push 1
push 0
push 0xffffffffffffffff
push str.Match
push edx
call fcn.00476c40
jmp 0x433b6b
mov ecx, dword [0x4a9bac]
mov eax, dword [str.EndKey:]
mov edx, dword [0x4a9bb0]
push pe_nt_image_headers32
mov dword [ebp - 0x130], ecx
mov dword [ebp - 0x134], eax
mov eax, dword [0x4a9bb4]
lea ecx, [ebp - 0x124]
push 0
push ecx
mov dword [ebp - 0x12c], edx
mov dword [ebp - 0x128], eax
call fcn.004961e0
mov ax, word [0x4c9604]
add esp, 0xc
test ax, ax
je 0x43388b
xor edx, edx
mov word [ebp - 0x126], ax
mov word [ebp - 0x124], dx
jmp 0x4339c5
cmp byte [0x4c9607], 0
je 0x43392a
push 0xff
lea eax, [ebp - 0x233]
push 0
push eax
mov byte [ebp - 0x234], 0
call fcn.004961e0
or byte [ebp - 0x224], 0x80
add esp, 0xc
call dword [sym.imp.USER32.dll_GetForegroundWindow]
test eax, eax
je 0x4338d1
push 0
push eax
call dword [sym.imp.USER32.dll_GetWindowThreadProcessId]
jmp 0x4338d3
xor eax, eax
push eax
call dword [sym.imp.USER32.dll_GetKeyboardLayout]
xor ecx, ecx
cmp dword [0x4c7634], ecx
push eax
setne cl
lea edx, [ebp - 0x126]
lea eax, [ebp - 0x234]
xor bl, bl
push ecx
movzx ecx, byte [0x4c9600]
push 2
push edx
push eax
push ecx
call fcn.00412760
movzx edx, ax
movzx eax, byte [0x4c9600]
add esp, 4
push edx
push eax
call dword [sym.imp.USER32.dll_ToUnicodeEx]
xor ecx, ecx
mov word [ebp + eax*2 - 0x126], cx
jmp 0x4339c5
cmp byte [0x4c9606], 0
je 0x43398f
mov cx, word [0x4c9602]
xor eax, eax
lea esp, [esp]
cmp word [eax*8 + 0x4c4a54], cx
je 0x43396e
inc eax
cmp eax, 0xd
jl 0x433940
movzx edx, cx
push edx
push str.sc_03X
mov esi, 0x79
lea edi, [ebp - 0x126]
call fcn.00473e90
add esp, 8
jmp 0x4339aa
mov edx, dword [eax*8 + 0x4c4a50]
push 0x78
push edx
lea eax, [ebp - 0x126]
push eax
call fcn.00490004
add esp, 0xc
xor ecx, ecx
mov word [ebp - 0x36], cx
jmp 0x4339aa
mov bl, byte [0x4c9600]
push 1
mov eax, 0x79
lea ecx, [ebp - 0x126]
call fcn.004120b0
add esp, 4
mov eax, dword [ebp - 0x126]
add eax, 0xffffff9f
cmp ax, 0x19
ja 0x4339c5
mov ecx, 0xffe0
add word [ebp - 0x126], cx
mov eax, dword [0x4c7ca4]
push 1
push 0
push 0xffffffffffffffff
lea edx, [ebp - 0x134]
push edx
push eax
call fcn.00476c40
jmp 0x433b6b
mov ecx, dword [0x4c7ca4]
push 1
push 0
push 0xffffffffffffffff
push 0x4a9bb8
push ecx
call fcn.00476c40
jmp 0x433b6b
mov ecx, dword [0x4c7ca4]
mov al, byte [ecx + 0x17]
mov dword [ebp - 0xc], ecx
test al, al
jne 0x433a27
mov edx, dword [ecx + 0xc]
push 1
push 0
push 0xffffffffffffffff
push str.NewInput
push edx
call fcn.00476c40
jmp 0x433b6b
cmp dword [ecx + 8], str.NewInput
lea edx, [ecx + 8]
mov dword [ebp - 0x14], edx
jne 0x433a3d
mov edx, dword [ecx + 0xc]
shr edx, 1
jmp 0x433a42
mov edx, 8
lea esi, [edx + 1]
mov dword [ebp - 0x20], edx
lea ebx, [esi + esi]
cmp al, 2
jne 0x433aae
cmp dword [0x4c95e0], 0
mov ebx, edx
jne 0x433b6b
cmp edx, 0xffffffff
jne 0x433a6a
mov ebx, 8
jmp 0x433a6e
test edx, edx
je 0x433a9f
lea edi, [ebx + 1]
mov esi, 0x4c95d4
call fcn.00404270
test eax, eax
je 0x433b6b
mov eax, dword [0x4c95e0]
push ebx
push str.NewInput
push eax
mov esi, eax
call fcn.00490004
add esp, 0xc
xor eax, eax
mov word [esi + ebx*2], ax
mov ecx, 0x4c95d4
call fcn.004042f0
jmp 0x433b6b
cmp ebx, dword [0x4c38bc]
jbe 0x433ad4
cmp ebx, dword [ecx + 0x10]
jbe 0x433ad4
push 0x4a0850
push 0x4bbc00
mov ecx, 0x4c9630
call fcn.0042e370
jmp 0x433b6b
cmp esi, 2
jae 0x433ae7
push 4
xor al, al
call fcn.004771f0
jmp 0x433b6b
mov al, byte [ecx + 0x15]
lea edi, [ecx + 0x15]
test al, 2
je 0x433aff
mov ecx, dword [ecx]
and al, 0x3d
mov byte [edi], al
mov edx, dword [ecx]
mov eax, dword [edx + 8]
push ecx
call eax
mov esi, dword [ebp - 0xc]
mov edx, dword [esi + 0x10]
and byte [edi], 0x82
mov dword [ebp + 8], edx
cmp ebx, edx
jbe 0x433b3a
mov cl, byte [esi + 0x14]
cmp cl, 1
jbe 0x433be5
cmp cl, 2
je 0x433c22
mov esi, dword [ebp + 8]
mov eax, dword [ebp + 8]
mov edx, dword [ebp - 0xc]
mov ecx, dword [ebp - 0x14]
and byte [edi], 0x7f
mov dword [edx + 0x10], esi
mov dword [ecx], eax
mov esi, edx
mov edi, dword [ebp - 0x14]
mov eax, dword [edi]
cmp eax, str.NewInput
je 0x433b5b
mov ecx, dword [ebp - 0x20]
lea edx, [ecx + ecx]
push edx
push str.NewInput
push eax
call fcn.0048dd80
add esp, 0xc
mov eax, dword [ebp - 0x20]
mov ecx, dword [edi]
add eax, eax
xor edx, edx
mov word [eax + ecx], dx
mov dword [esi + 0xc], eax
cmp byte [0x4c75fd], 0
mov edi, dword [ebp - 0x10]
mov dword [0x4c95f0], 0
je 0x433bb5
mov eax, dword [0x4c74a8]
push 0xc
push eax
call dword [sym.imp.USER32.dll_KillTimer]
test eax, eax
je 0x433b9a
mov byte [0x4c75fd], 0
push 0x10
call dword [sym.imp.USER32.dll_GetQueueStatus]
shr eax, 0x10
test al, 0x10
je 0x433bb5
push 1
push 0xffffffffffffffff
call fcn.00401360
add esp, 8
mov dl, byte [edi + 0x17]
test dl, dl
jne 0x433d37
mov edx, dword [edi + 0xc]
push 1
push 0
push 0xffffffffffffffff
lea ecx, [ebp - 0x8534]
push ecx
push edx
call fcn.00476c40
lea esp, [ebp - 0x8544]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
cmp ebx, 0x80
ja 0x433c22
cmp ebx, 8
ja 0x433bf9
mov esi, 8
jmp 0x433c07
mov ecx, 0x10
cmp ecx, ebx
sbb esi, esi
and esi, 0x70
add esi, ecx
mov eax, esi
call fcn.004712b0
test eax, eax
je 0x433b6b
mov edx, dword [ebp - 0xc]
mov byte [edx + 0x14], 1
jmp 0x433b2a
cmp ebx, 0x20
jae 0x433c31
mov esi, 0x20
jmp 0x433cac
cmp ebx, 0x208
jae 0x433c40
mov esi, 0x208
jmp 0x433cac
cmp ebx, 0x50000
jae 0x433c7b
mov dword [ebp + 8], ebx
fild dword [ebp + 8]
test ebx, ebx
jns 0x433c58
fadd qword [0x4bd720]
fmul qword [0x4bd758]
fnstcw word [ebp + 0xa]
movzx eax, word [ebp + 0xa]
or eax, 0xc00
mov dword [ebp - 0x28], eax
fldcw word [ebp - 0x28]
fistp qword [ebp - 0x2c]
mov esi, dword [ebp - 0x2c]
fldcw word [ebp + 0xa]
jmp 0x433cac
cmp ebx, 0x320000
jae 0x433c8b
lea esi, [ebx + 0x8000]
jmp 0x433cac
cmp ebx, 0xc80000
jae 0x433ca6
mov eax, 0x51eb851f
mul ebx
mov esi, edx
mov edx, dword [ebp + 8]
shr esi, 5
add esi, ebx
jmp 0x433cac
lea esi, [ebx + 0x20000]
mov eax, dword [0x4c38bc]
cmp esi, eax
jbe 0x433cb7
mov esi, eax
cmp cl, 2
jne 0x433ced
test edx, edx
je 0x433ced
mov eax, dword [ebp - 0x14]
mov ecx, dword [eax]
push ecx
mov bl, 1
call fcn.0048e96f
add esp, 4
test esi, esi
js 0x433cf1
push esi
call fcn.0048d394
add esp, 4
test eax, eax
je 0x433cf1
mov edx, dword [ebp - 0xc]
mov byte [edx + 0x14], 2
jmp 0x433b2a
xor bl, bl
jmp 0x433cd0
test bl, bl
je 0x433d0a
mov eax, dword [ebp - 0xc]
mov ecx, dword [ebp - 0x14]
mov dword [eax + 0x10], 0
mov dword [ecx], 0x4c95a8
jmp 0x433d14
mov edx, dword [ebp - 0x14]
mov eax, dword [edx]
xor ecx, ecx
mov word [eax], cx
mov edx, dword [ebp - 0xc]
push 0x4a0850
push str.Out_of_memory.
mov ecx, 0x4c9630
mov dword [edx + 0xc], 0
call fcn.0042e370
jmp 0x433b6b
lea eax, [ebp - 0x8534]
cmp dword [edi + 8], eax
jne 0x433d4c
mov esi, dword [edi + 0xc]
shr esi, 1
mov dword [ebp - 0x28], esi
jmp 0x433d69
lea eax, [ebp - 0x8534]
lea esi, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x433d55
sub eax, esi
sar eax, 1
mov esi, eax
mov dword [ebp - 0x28], eax
lea eax, [esi + 1]
lea ebx, [eax + eax]
cmp dl, 2
jne 0x433df6
cmp dword [0x4c95e0], 0
mov ebx, esi
jne 0x433ef6
cmp esi, 0xffffffff
jne 0x433da6
lea eax, [ebp - 0x8534]
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x433d95
sub eax, edx
sar eax, 1
mov ebx, eax
test ebx, ebx
je 0x433ddd
lea edi, [ebx + 1]
mov esi, 0x4c95d4
call fcn.00404270
test eax, eax
je 0x433ef6
mov eax, dword [0x4c95e0]
push ebx
lea ecx, [ebp - 0x8534]
push ecx
push eax
mov esi, eax
call fcn.00490004
add esp, 0xc
xor edx, edx
mov word [esi + ebx*2], dx
mov ecx, 0x4c95d4
call fcn.004042f0
lea esp, [ebp - 0x8544]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
cmp ebx, dword [0x4c38bc]
jbe 0x433e26
cmp ebx, dword [edi + 0x10]
jbe 0x433e26
push 0x4a0850
push 0x4bbc00
mov ecx, 0x4c9630
call fcn.0042e370
lea esp, [ebp - 0x8544]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
cmp eax, 2
jae 0x433e4a
push 4
xor al, al
mov ecx, edi
call fcn.004771f0
mov eax, 1
lea esp, [ebp - 0x8544]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov al, byte [edi + 0x15]
test al, 2
je 0x433e60
and al, 0x3d
mov byte [edi + 0x15], al
mov eax, dword [edi]
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
and byte [edi + 0x15], 0x82
cmp ebx, dword [edi + 0x10]
jbe 0x433e8d
mov cl, byte [edi + 0x14]
cmp cl, 1
jbe 0x433ec9
cmp cl, 2
je 0x433f10
mov esi, dword [ebp + 8]
mov eax, dword [ebp + 8]
and byte [edi + 0x15], 0x7f
mov dword [edi + 0x10], esi
mov esi, dword [ebp - 0x28]
mov dword [edi + 8], eax
mov eax, dword [edi + 8]
lea ecx, [ebp - 0x8534]
cmp eax, ecx
je 0x433ea8
lea edx, [esi + esi]
push edx
push ecx
push eax
call fcn.0048dd80
add esp, 0xc
mov edx, dword [edi + 8]
lea eax, [esi + esi]
xor ecx, ecx
mov word [eax + edx], cx
mov dword [edi + 0xc], eax
lea eax, [ecx + 1]
lea esp, [ebp - 0x8544]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
cmp ebx, 0x80
ja 0x433f10
cmp ebx, 8
ja 0x433edd
mov esi, 8
jmp 0x433eeb
mov eax, 0x10
cmp eax, ebx
sbb esi, esi
and esi, 0x70
add esi, eax
mov eax, esi
call fcn.004712b0
test eax, eax
jne 0x433f07
xor eax, eax
lea esp, [ebp - 0x8544]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov byte [edi + 0x14], 1
jmp 0x433e80
cmp ebx, 0x20
jae 0x433f1f
mov esi, 0x20
jmp 0x433f97
cmp ebx, 0x208
jae 0x433f2e
mov esi, 0x208
jmp 0x433f97
cmp ebx, 0x50000
jae 0x433f69
mov dword [ebp + 8], ebx
fild dword [ebp + 8]
test ebx, ebx
jns 0x433f46
fadd qword [0x4bd720]
fmul qword [0x4bd758]
fnstcw word [ebp + 0xa]
movzx eax, word [ebp + 0xa]
or eax, 0xc00
mov dword [ebp - 0x30], eax
fldcw word [ebp - 0x30]
fistp qword [ebp - 0x34]
mov esi, dword [ebp - 0x34]
fldcw word [ebp + 0xa]
jmp 0x433f97
cmp ebx, 0x320000
jae 0x433f79
lea esi, [ebx + 0x8000]
jmp 0x433f97
cmp ebx, 0xc80000
jae 0x433f91
mov eax, 0x51eb851f
mul ebx
mov esi, edx
shr esi, 5
add esi, ebx
jmp 0x433f97
lea esi, [ebx + 0x20000]
mov eax, dword [0x4c38bc]
cmp esi, eax
jbe 0x433fa2
mov esi, eax
cmp cl, 2
jne 0x433fd5
cmp dword [edi + 0x10], 0
je 0x433fd5
mov ecx, dword [edi + 8]
push ecx
mov bl, 1
call fcn.0048e96f
add esp, 4
test esi, esi
js 0x433fd9
push esi
call fcn.0048d394
add esp, 4
test eax, eax
je 0x433fd9
mov byte [edi + 0x14], 2
jmp 0x433e80
xor bl, bl
jmp 0x433fbb
test bl, bl
je 0x433fed
mov dword [edi + 0x10], 0
mov dword [edi + 8], 0x4c95a8
jmp 0x433ff5
mov edx, dword [edi + 8]
xor eax, eax
mov word [edx], ax
push 0x4a0850
push str.Out_of_memory.
mov ecx, 0x4c9630
mov dword [edi + 0xc], 0
call fcn.0042e370
lea esp, [ebp - 0x8544]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4