Function at 0x431ff0
Capabilities:
Get keyboard layout

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x44e0
call fcn.00491c20
mov eax, dword [0x4ab1e8]
push ebx
push esi
push edi
xor edi, edi
mov dword [ebp - 0x10], eax
cmp eax, edi
jne 0x43203f
cmp dword [0x4ad2e8], 1
mov edx, dword [ebp + 8]
sete al
test al, al
sete al
movzx ecx, al
push ecx
push edx
mov dword [0x4ad2e8], edi
call fcn.0042d4e0
lea esp, [ebp - 0x44ec]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov eax, dword [0x4ab24c]
mov ebx, dword [0x4ab244]
mov esi, dword [0x4ab248]
mov dword [ebp - 0x28], eax
mov dword [0x4ad2e8], edi
mov dword [0x4ad314], 1
mov word [0x4ad318], di
mov dword [0x4ad324], 0x3fff
mov al, byte [ebx]
mov dword [ebp - 0x1c], esi
mov dword [ebp - 0x20], edi
mov byte [ebp - 6], 0
test al, al
je 0x432150
lea edi, [ebx + 1]
jmp 0x432090
movzx esi, al
test esi, 0xffffff80
jne 0x4320ad
push 2
push esi
call fcn.0048698e
add esp, 8
test eax, eax
je 0x4320ad
and esi, 0xffffffdf
mov eax, esi
movsx eax, al
add eax, 0xffffffd6
cmp eax, 0x2c
ja case.0x4320c5.43
movzx ecx, byte [eax + 0x432e90]
jmp dword [ecx*4 + 0x432e68]
mov byte [0x4ad314], 0
jmp case.0x4320c5.43
mov byte [0x4ad315], 1
jmp case.0x4320c5.43
mov byte [0x4ad316], 1
jmp case.0x4320c5.43
mov byte [0x4ad317], 1
jmp case.0x4320c5.43
push edi
call fcn.004869d6
add esp, 4
mov dword [0x4ad324], eax
cmp eax, 0x3fff
jle case.0x4320c5.43
mov dword [0x4ad324], 0x3fff
jmp case.0x4320c5.43
mov esi, edi
call fcn.00413380
fmul qword [0x4a1cd0]
call fcn.00493e10
mov dword [ebp - 0x20], eax
jmp case.0x4320c5.43
mov byte [0x4ad318], 1
jmp case.0x4320c5.43
mov byte [0x4ad319], 1
jmp case.0x4320c5.43
mov byte [ebp - 6], 1
mov al, byte [ebx + 1]
inc ebx
inc edi
test al, al
jne 0x432090
mov esi, dword [ebp - 0x1c]
xor edi, edi
push 0xff
lea edx, [ebp - 0x2db]
push edi
push edx
mov byte [ebp - 0x2dc], 0
call fcn.0048e920
add esp, 0xc
push 0x1ff
lea eax, [ebp - 0x4db]
push edi
push eax
mov byte [ebp - 0x4dc], 0
call fcn.0048e920
add esp, 0xc
mov byte [ebp - 0x17], 0
cmp byte [esi], 0
mov dword [ebp - 0x14], edi
mov eax, esi
mov dword [ebp - 0xc], esi
je 0x4322bb
mov byte [ebp - 0x18], 0
mov cl, byte [eax]
movsx eax, cl
sub eax, 0x7b
je 0x4321ea
sub eax, 2
je 0x4322ab
cmp byte [ebp - 6], 0
je 0x4321c2
inc dword [ebp - 0x14]
jmp 0x4322ab
push 0
mov byte [ebp - 0x18], cl
mov byte [ebp - 5], 0
call dword [sym.imp.USER32.dll_GetKeyboardLayout]
push eax
lea ecx, [ebp - 5]
push 1
push ecx
lea eax, [ebp - 0x18]
call fcn.00412350
add esp, 0xc
mov bl, al
jmp 0x432273
mov edi, dword [ebp - 0xc]
inc edi
push 0x7d
push edi
call fcn.00486441
mov esi, eax
add esp, 8
test esi, esi
je 0x4322ab
sub eax, dword [ebp - 0xc]
dec eax
jne 0x432216
cmp byte [esi + 1], 0x7d
jne 0x4322ab
inc esi
jmp 0x43221b
cmp eax, 1
jne 0x43222e
cmp byte [ebp - 6], 0
je 0x432229
inc dword [ebp - 0x14]
jmp 0x4322ab
mov dl, byte [edi]
mov byte [ebp - 0x18], dl
push 0
mov byte [esi], 0
mov byte [ebp - 5], 0
call dword [sym.imp.USER32.dll_GetKeyboardLayout]
push eax
lea eax, [ebp - 5]
push 1
push eax
mov eax, edi
call fcn.00412350
mov bl, al
add esp, 0xc
test bl, bl
jne 0x43226d
mov eax, edi
call fcn.004122a0
movzx eax, ax
test ax, ax
je 0x43226d
mov ecx, eax
mov byte [ebp + ecx - 0x4dc], 1
mov byte [esi], 0x7d
mov dword [ebp - 0xc], esi
test bl, bl
je 0x4322ab
movzx esi, bl
or byte [ebp + esi - 0x2dc], 1
cmp byte [ebp - 0x18], 0
lea esi, [ebp + esi - 0x2dc]
je 0x4322ab
mov edx, dword [ebp - 0x18]
push edx
call dword [sym.imp.USER32.dll_IsCharAlphaA]
test eax, eax
jne 0x4322ab
test byte [ebp - 5], 0x30
je 0x4322a8
or byte [esi], 2
jmp 0x4322ab
or byte [esi], 4
mov eax, dword [ebp - 0xc]
inc eax
cmp byte [eax], 0
mov dword [ebp - 0xc], eax
jne 0x43219d
mov eax, dword [ebp - 0x14]
mov dword [0x4ad2f4], 0x499861
test eax, eax
je 0x43232b
inc eax
call fcn.0048ee80
mov esi, dword [ebp - 0x1c]
mov eax, esp
mov dword [0x4ad2f4], eax
cmp byte [esi], 0
mov edi, eax
je 0x432328
mov cl, byte [esi]
movsx eax, cl
sub eax, 0x7b
je 0x4322f7
sub eax, 2
je 0x432322
mov byte [edi], cl
inc edi
jmp 0x432322
lea ebx, [esi + 1]
push 0x7d
push ebx
call fcn.00486441
add esp, 8
test eax, eax
je 0x432322
cmp eax, ebx
jne 0x432314
cmp byte [eax + 1], 0x7d
jne 0x432314
inc eax
add esi, 2
cmp eax, esi
jne 0x432320
mov cl, byte [ebx]
mov byte [edi], cl
inc edi
mov esi, eax
inc esi
cmp byte [esi], 0
jne 0x4322e3
mov byte [edi], 0
mov edi, dword [ebp - 0x28]
mov dword [0x4ad304], 0
cmp byte [edi], 0
je 0x432555
cmp dword [0x4ad300], 0
jne 0x43238d
push 0x1000
call fcn.00485609
add esp, 4
mov dword [0x4ad300], eax
test eax, eax
jne 0x432383
mov ecx, dword [ebp + 8]
push 0x499861
push 0
push str.Out_of_memory.
call fcn.0042d6b0
lea esp, [ebp - 0x44ec]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov dword [0x4ad308], 0x400
mov esi, dword [ebp + 8]
cmp byte [esi + 1], 3
ja 0x43239d
xor eax, eax
jmp 0x43241a
mov eax, dword [0x4ab1f4]
test eax, eax
je 0x432409
mov dl, byte [eax + 0x17]
test dl, dl
jne 0x4323b5
mov ecx, dword [eax + 0xc]
mov cl, byte [ecx + 0x17]
jmp 0x4323b7
mov cl, dl
cmp cl, 1
jne 0x432409
movzx ecx, byte [esi]
lea ebx, [ecx*8]
sub ebx, ecx
test byte [ebx*2 + 0x4a7996], 0x80
jne 0x432409
cmp dword [0x4ab408], 0
jne 0x4323fa
test dl, dl
jne 0x4323e4
mov ecx, dword [eax + 0xc]
jmp 0x4323e6
mov ecx, eax
test byte [ecx + 0x15], 0xa
jne 0x4323fa
xor edx, edx
cmp dword [ecx + 0xc], edx
setne dl
mov ecx, edx
test ecx, ecx
je 0x432409
cmp eax, dword [0x4abaa0]
je 0x432409
call fcn.00413830
jmp 0x43241a
mov eax, dword [0x4ab24c]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x432411
sub eax, edx
inc eax
cmp eax, dword [0x4ad310]
jbe 0x432488
mov dword [0x4ad310], eax
cmp eax, 0x1000
ja 0x432439
mov dword [0x4ad310], 0x1000
mov eax, dword [0x4ad30c]
test eax, eax
je 0x43244b
push eax
call fcn.00485468
add esp, 4
mov eax, dword [0x4ad310]
push eax
call fcn.00485609
add esp, 4
mov dword [0x4ad30c], eax
test eax, eax
jne 0x43248d
push 0x499861
push eax
push str.Out_of_memory.
mov ecx, esi
mov dword [0x4ad310], eax
call fcn.0042d6b0
lea esp, [ebp - 0x44ec]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov eax, dword [0x4ad30c]
mov ecx, dword [0x4ad300]
mov edx, dword [0x4ad304]
mov dword [ecx + edx*4], eax
cmp byte [edi], 0
mov esi, dword [0x4ad30c]
mov ebx, edi
je 0x432538
lea ecx, [ecx]
mov al, byte [ebx]
cmp al, 0x2c
je 0x4324bb
mov byte [esi], al
inc esi
jmp 0x43252e
cmp byte [ebx + 1], 0x2c
jne 0x4324c8
mov byte [esi], 0x2c
inc esi
inc ebx
jmp 0x43252e
mov byte [esi], 0
mov ecx, dword [0x4ad300]
mov eax, dword [0x4ad304]
mov edx, dword [ecx + eax*4]
cmp byte [edx], 0
je 0x4324f6
inc eax
mov dword [0x4ad304], eax
inc esi
mov dword [ecx + eax*4], esi
mov byte [esi], 0
mov eax, dword [0x4ad304]
mov ecx, dword [0x4ad300]
cmp byte [ebx + 1], 0
je 0x43252e
mov edx, dword [0x4ad308]
cmp eax, edx
jb 0x43252e
lea eax, [edx*4 + 0x1000]
push eax
push ecx
call fcn.004869f7
add esp, 8
test eax, eax
je 0x432360
add dword [0x4ad308], 0x400
mov dword [0x4ad300], eax
inc ebx
cmp byte [ebx], 0
jne 0x4324b0
mov byte [esi], 0
mov ecx, dword [0x4ad300]
mov edx, dword [0x4ad304]
mov eax, dword [ecx + edx*4]
cmp byte [eax], 0
je 0x432555
inc dword [0x4ad304]
cmp byte [0x4ab3f9], 0
je 0x432593
mov ecx, dword [0x4ab2a0]
push 0xc
push ecx
call dword [sym.imp.USER32.dll_KillTimer]
test eax, eax
je 0x432578
mov byte [0x4ab3f9], 0
push 0x10
call dword [sym.imp.USER32.dll_GetQueueStatus]
shr eax, 0x10
test al, 0x10
je 0x432593
push 1
push 0xffffffffffffffff
call fcn.004013c0
add esp, 8
or byte [0x4abbae], 1
xor esi, esi
lea edx, [ebp - 0x44dc]
lea eax, [ebp - 0x2dc]
lea ecx, [ebp - 0x4dc]
mov byte [ebp - 0x44dc], 0
mov dword [0x4ad31c], edx
mov dword [0x4ad320], esi
mov dword [0x4ad2ec], eax
mov dword [0x4ad2f0], ecx
mov dword [0x4ad2e8], 1
mov byte [0x4ab3f4], 1
cmp dword [0x4ab3d0], esi
jne 0x4325f7
mov edx, dword [0x4a8a8c]
movzx eax, word [edx]
push eax
call fcn.00407b40
add esp, 4
mov eax, dword [ebp - 0x20]
cmp eax, esi
jle 0x432631
cmp byte [0x4ab3f9], 0
jne 0x432631
cmp eax, 0xa
jge 0x432611
mov eax, 0xa
mov ecx, dword [0x4ab2a0]
push 0x4037c0
push eax
push 0xc
push ecx
call dword [sym.imp.USER32.dll_SetTimer]
test eax, eax
setne dl
mov byte [0x4ab3f9], dl
push 1
push 0x8000012f
call fcn.004013c0
mov eax, dword [0x4ad2e8]
add esp, 8
cmp eax, 1
je 0x432631
add eax, 0xfffffffe
cmp eax, 3
ja case.default.0x432656
jmp dword [eax*4 + 0x432ec0]
mov eax, dword [0x4abaa0]
push 1
push 0
push 0xffffffffffffffff
push str.Timeout
push eax
call fcn.00475300
jmp 0x4329cc
mov ecx, dword [0x4abaa0]
push 1
push 0
push 0xffffffffffffffff
push str.Match
push ecx
call fcn.00475300
jmp 0x4329cc
mov edx, dword [str.EndKey:]
mov eax, dword [0x49e97c]
push 0x78
lea ecx, [ebp - 0xa4]
push esi
push ecx
mov dword [ebp - 0xac], edx
mov dword [ebp - 0xa8], eax
call fcn.0048e920
mov al, byte [0x4ad2fc]
add esp, 0xc
test al, al
je 0x4326d8
mov byte [ebp - 0xa5], al
mov byte [ebp - 0xa4], 0
jmp 0x432836
cmp byte [0x4ad2fe], 0
je 0x43279e
push 0xff
lea edx, [ebp - 0x1db]
push esi
push edx
mov byte [ebp - 0x1dc], 0
call fcn.0048e920
or byte [ebp - 0x1cc], 0x80
add esp, 0xc
call dword [sym.imp.USER32.dll_GetForegroundWindow]
cmp eax, esi
je 0x43274c
mov ebx, dword [sym.imp.USER32.dll_GetWindowThreadProcessId]
push 0
push eax
call ebx
mov esi, eax
lea eax, [ebp - 0xdc]
push eax
push esi
mov dword [ebp - 0xdc], 0x30
call dword [sym.imp.USER32.dll_GetGUIThreadInfo]
test eax, eax
je 0x43274c
mov eax, dword [ebp - 0xd0]
test eax, eax
je 0x43274c
push 0
push eax
call ebx
mov esi, eax
push esi
call dword [sym.imp.USER32.dll_GetKeyboardLayout]
xor ecx, ecx
cmp dword [0x4ab430], ecx
push eax
setne cl
lea edx, [ebp - 0xa5]
lea eax, [ebp - 0x1dc]
xor bl, bl
push ecx
movzx ecx, byte [0x4ad2f8]
push edx
push eax
push ecx
call fcn.004128b0
movzx edx, ax
movzx eax, byte [0x4ad2f8]
add esp, 4
push edx
push eax
call dword [sym.imp.USER32.dll_ToAsciiEx]
mov byte [ebp + eax - 0xa5], bl
jmp 0x432836
cmp byte [0x4ad2fd], 0
je 0x4327fd
mov cx, word [0x4ad2fa]
xor eax, eax
cmp word [eax*8 + 0x4a8a24], cx
je 0x4327de
inc eax
cmp eax, 0xd
jl 0x4327b0
movzx eax, cx
push eax
push str.sc_03X
mov esi, 0x79
lea edi, [ebp - 0xa5]
call fcn.00472550
add esp, 8
jmp 0x432818
mov ecx, dword [eax*8 + 0x4a8a20]
push 0x78
push ecx
lea edx, [ebp - 0xa5]
push edx
call fcn.004883f0
add esp, 0xc
mov byte [ebp - 0x2d], 0
jmp 0x432818
mov bl, byte [0x4ad2f8]
push 1
mov eax, 0x79
lea ecx, [ebp - 0xa5]
call fcn.00412110
add esp, 4
mov cl, byte [ebp - 0xa5]
sub cl, 0x61
cmp cl, 0x19
ja 0x432836
cmp byte [ebp - 0xa4], 0
jne 0x432836
add byte [ebp - 0xa5], 0xe0
mov eax, dword [0x4abaa0]
push 1
push 0
push 0xffffffffffffffff
lea edx, [ebp - 0xac]
push edx
push eax
call fcn.00475300
jmp 0x4329cc
mov ecx, dword [0x4abaa0]
push 1
push 0
push 0xffffffffffffffff
push 0x49cec4
push ecx
call fcn.00475300
jmp 0x4329cc
mov ecx, dword [0x4abaa0]
mov al, byte [ecx + 0x17]
mov dword [ebp - 0xc], ecx
test al, al
jne 0x432898
mov edx, dword [ecx + 0xc]
push 1
push 0
push 0xffffffffffffffff
push str.NewInput
push edx
call fcn.00475300
jmp 0x4329cc
cmp dword [ecx + 8], str.NewInput
lea edx, [ecx + 8]
mov dword [ebp - 0x14], edx
jne 0x4328ac
mov edx, dword [ecx + 0xc]
jmp 0x4328b1
mov edx, 8
mov dword [ebp - 0x1c], edx
lea ebx, [edx + 1]
cmp al, 2
jne 0x432919
mov ebx, edx
cmp dword [0x4ad2d8], esi
jne 0x4329cc
cmp edx, 0xffffffff
jne 0x4328d5
mov ebx, 8
jmp 0x4328d9
test edx, edx
je 0x432908
lea edi, [ebx + 1]
mov esi, 0x4ad2cc
call fcn.004042e0
test eax, eax
je 0x4329cc
mov eax, dword [0x4ad2d8]
push ebx
push str.NewInput
push eax
mov esi, eax
call fcn.004883f0
add esp, 0xc
mov byte [esi + ebx], 0
push 1
mov ecx, 0x4ad2cc
call fcn.00404350
jmp 0x4329cc
cmp ebx, dword [0x4a78f4]
jbe 0x43293f
cmp ebx, dword [ecx + 0x10]
jbe 0x43293f
push 0x499861
push 0x4a0bc4
mov ecx, 0x4ad328
call fcn.0042d970
jmp 0x4329cc
cmp ebx, 2
jae 0x432952
push 4
xor al, al
call fcn.004758b0
jmp 0x4329cc
mov al, byte [ecx + 0x15]
lea edi, [ecx + 0x15]
test al, 2
je 0x43296a
mov ecx, dword [ecx]
and al, 0x3d
mov byte [edi], al
mov eax, dword [ecx]
push ecx
mov ecx, dword [eax + 8]
call ecx
mov esi, dword [ebp - 0xc]
mov edx, dword [esi + 0x10]
and byte [edi], 0x82
mov dword [ebp + 8], edx
cmp ebx, edx
jbe 0x4329a5
mov cl, byte [esi + 0x14]
cmp cl, 1
jbe 0x432a47
cmp cl, 2
je 0x432a81
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 ebx, dword [ebp - 0x14]
mov eax, dword [ebx]
mov edi, dword [ebp - 0x1c]
cmp eax, str.NewInput
je 0x4329c3
push edi
push str.NewInput
push eax
call fcn.00486030
add esp, 0xc
mov eax, dword [ebx]
mov byte [edi + eax], 0
mov dword [esi + 0xc], edi
cmp byte [0x4ab3f9], 0
mov edi, dword [ebp - 0x10]
mov dword [0x4ad2e8], 0
je 0x432a17
mov ecx, dword [0x4ab2a0]
push 0xc
push ecx
call dword [sym.imp.USER32.dll_KillTimer]
test eax, eax
je 0x4329fc
mov byte [0x4ab3f9], 0
push 0x10
call dword [sym.imp.USER32.dll_GetQueueStatus]
shr eax, 0x10
test al, 0x10
je 0x432a17
push 1
push 0xffffffffffffffff
call fcn.004013c0
add esp, 8
mov dl, byte [edi + 0x17]
test dl, dl
jne 0x432b94
mov eax, dword [edi + 0xc]
push 1
push 0
push 0xffffffffffffffff
lea edx, [ebp - 0x44dc]
push edx
push eax
call fcn.00475300
lea esp, [ebp - 0x44ec]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
cmp ebx, 0x40
ja 0x432a81
cmp ebx, 4
ja 0x432a58
mov esi, 4
jmp 0x432a66
mov edx, 8
cmp edx, ebx
sbb esi, esi
and esi, 0x38
add esi, edx
mov eax, esi
call fcn.0046f980
test eax, eax
je 0x4329cc
mov ecx, dword [ebp - 0xc]
mov byte [ecx + 0x14], 1
jmp 0x432995
cmp ebx, 0x10
jae 0x432a90
mov esi, 0x10
jmp 0x432b0b
cmp ebx, 0x104
jae 0x432a9f
mov esi, 0x104
jmp 0x432b0b
cmp ebx, 0x28000
jae 0x432ada
mov dword [ebp + 8], ebx
fild dword [ebp + 8]
test ebx, ebx
jns 0x432ab7
fadd qword [0x4a1ca0]
fmul qword [0x4a1ca8]
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 0x432b0b
cmp ebx, 0x190000
jae 0x432aea
lea esi, [ebx + 0x4000]
jmp 0x432b0b
cmp ebx, 0x640000
jae 0x432b05
mov eax, 0x51eb851f
mul ebx
mov esi, edx
mov edx, dword [ebp + 8]
shr esi, 5
add esi, ebx
jmp 0x432b0b
lea esi, [ebx + 0x10000]
mov eax, dword [0x4a78f4]
cmp esi, eax
jbe 0x432b16
mov esi, eax
cmp cl, 2
jne 0x432b4c
test edx, edx
je 0x432b4c
mov edx, dword [ebp - 0x14]
mov eax, dword [edx]
push eax
mov bl, 1
call fcn.00485468
add esp, 4
test esi, esi
js 0x432b50
push esi
call fcn.00485609
add esp, 4
test eax, eax
je 0x432b50
mov ecx, dword [ebp - 0xc]
mov byte [ecx + 0x14], 2
jmp 0x432995
xor bl, bl
jmp 0x432b2f
test bl, bl
je 0x432b69
mov edx, dword [ebp - 0xc]
mov eax, dword [ebp - 0x14]
mov dword [edx + 0x10], 0
mov dword [eax], 0x4acbb3
jmp 0x432b71
mov ecx, dword [ebp - 0x14]
mov edx, dword [ecx]
mov byte [edx], 0
mov eax, dword [ebp - 0xc]
push 0x499861
push str.Out_of_memory.
mov ecx, 0x4ad328
mov dword [eax + 0xc], 0
call fcn.0042d970
jmp 0x4329cc
lea ecx, [ebp - 0x44dc]
cmp dword [edi + 8], ecx
jne 0x432ba7
mov esi, dword [edi + 0xc]
mov dword [ebp - 0x20], esi
jmp 0x432bbe
lea eax, [ebp - 0x44dc]
lea esi, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x432bb0
sub eax, esi
mov esi, eax
mov dword [ebp - 0x20], eax
lea ebx, [esi + 1]
cmp dl, 2
jne 0x432c42
cmp dword [0x4ad2d8], 0
mov ebx, esi
jne 0x432d3b
cmp esi, 0xffffffff
jne 0x432bf2
lea eax, [ebp - 0x44dc]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x432be7
sub eax, edx
mov ebx, eax
test ebx, ebx
je 0x432c27
lea edi, [ebx + 1]
mov esi, 0x4ad2cc
call fcn.004042e0
test eax, eax
je 0x432d3b
mov eax, dword [0x4ad2d8]
push ebx
lea edx, [ebp - 0x44dc]
push edx
push eax
mov esi, eax
call fcn.004883f0
add esp, 0xc
mov byte [esi + ebx], 0
push 1
mov ecx, 0x4ad2cc
call fcn.00404350
lea esp, [ebp - 0x44ec]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
cmp ebx, dword [0x4a78f4]
jbe 0x432c72
cmp ebx, dword [edi + 0x10]
jbe 0x432c72
push 0x499861
push 0x4a0bc4
mov ecx, 0x4ad328
call fcn.0042d970
lea esp, [ebp - 0x44ec]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
cmp ebx, 2
jae 0x432c96
push 4
xor al, al
mov ecx, edi
call fcn.004758b0
mov eax, 1
lea esp, [ebp - 0x44ec]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov al, byte [edi + 0x15]
test al, 2
je 0x432cac
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 0x432cd9
mov cl, byte [edi + 0x14]
cmp cl, 1
jbe 0x432d11
cmp cl, 2
je 0x432d55
mov esi, dword [ebp + 8]
mov eax, dword [ebp + 8]
and byte [edi + 0x15], 0x7f
mov dword [edi + 0x10], esi
mov esi, dword [ebp - 0x20]
mov dword [edi + 8], eax
mov eax, dword [edi + 8]
lea ecx, [ebp - 0x44dc]
cmp eax, ecx
je 0x432cf3
push esi
mov edx, ecx
push edx
push eax
call fcn.00486030
add esp, 0xc
mov eax, dword [edi + 8]
mov byte [esi + eax], 0
mov dword [edi + 0xc], esi
mov eax, 1
lea esp, [ebp - 0x44ec]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
cmp ebx, 0x40
ja 0x432d55
cmp ebx, 4
ja 0x432d22
mov esi, 4
jmp 0x432d30
mov eax, 8
cmp eax, ebx
sbb esi, esi
and esi, 0x38
add esi, eax
mov eax, esi
call fcn.0046f980
test eax, eax
jne 0x432d4c
xor eax, eax
lea esp, [ebp - 0x44ec]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov byte [edi + 0x14], 1
jmp 0x432ccc
cmp ebx, 0x10
jae 0x432d64
mov esi, 0x10
jmp 0x432ddf
cmp ebx, 0x104
jae 0x432d76
mov esi, 0x104
jmp 0x432ddf
cmp ebx, 0x28000
jae 0x432db1
mov dword [ebp + 8], ebx
fild dword [ebp + 8]
test ebx, ebx
jns 0x432d8e
fadd qword [0x4a1ca0]
fmul qword [0x4a1ca8]
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 0x432ddf
cmp ebx, 0x190000
jae 0x432dc1
lea esi, [ebx + 0x4000]
jmp 0x432ddf
cmp ebx, 0x640000
jae 0x432dd9
mov eax, 0x51eb851f
mul ebx
mov esi, edx
shr esi, 5
add esi, ebx
jmp 0x432ddf
lea esi, [ebx + 0x10000]
mov eax, dword [0x4a78f4]
cmp esi, eax
jbe 0x432dea
mov esi, eax
cmp cl, 2
jne 0x432e1d
cmp dword [edi + 0x10], 0
je 0x432e1d
mov ecx, dword [edi + 8]
push ecx
mov bl, 1
call fcn.00485468
add esp, 4
test esi, esi
js 0x432e21
push esi
call fcn.00485609
add esp, 4
test eax, eax
je 0x432e21
mov byte [edi + 0x14], 2
jmp 0x432ccc
xor bl, bl
jmp 0x432e03
test bl, bl
je 0x432e35
mov dword [edi + 0x10], 0
mov dword [edi + 8], 0x4acbb3
jmp 0x432e3b
mov edx, dword [edi + 8]
mov byte [edx], 0
push 0x499861
push str.Out_of_memory.
mov ecx, 0x4ad328
mov dword [edi + 0xc], 0
call fcn.0042d970
lea esp, [ebp - 0x44ec]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4