Function at 0x431fe0
Capabilities:
Get keyboard layout

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x44e0
call fcn.00491b50
mov eax, dword [0x4ab178]
push ebx
push esi
push edi
xor edi, edi
mov dword [ebp - 0x10], eax
cmp eax, edi
jne 0x43202f
cmp dword [0x4ad250], 1
mov edx, dword [ebp + 8]
sete al
test al, al
sete al
movzx ecx, al
push ecx
push edx
mov dword [0x4ad250], edi
call fcn.0042d4c0
lea esp, [ebp - 0x44ec]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov eax, dword [0x4ab1d4]
mov ebx, dword [0x4ab1cc]
mov esi, dword [0x4ab1d0]
mov dword [ebp - 0x28], eax
mov dword [0x4ad250], edi
mov dword [0x4ad27c], 1
mov word [0x4ad280], di
mov dword [0x4ad28c], 0x3fff
mov al, byte [ebx]
mov dword [ebp - 0x1c], esi
mov dword [ebp - 0x20], edi
mov byte [ebp - 6], 0
test al, al
je 0x432140
lea edi, [ebx + 1]
jmp 0x432080
movzx esi, al
test esi, 0xffffff80
jne 0x43209d
push 2
push esi
call fcn.004868be
add esp, 8
test eax, eax
je 0x43209d
and esi, 0xffffffdf
mov eax, esi
movsx eax, al
add eax, 0xffffffd6
cmp eax, 0x2c
ja case.0x4320b5.43
movzx ecx, byte [eax + 0x432e80]
jmp dword [ecx*4 + 0x432e58]
mov byte [0x4ad27c], 0
jmp case.0x4320b5.43
mov byte [0x4ad27d], 1
jmp case.0x4320b5.43
mov byte [0x4ad27e], 1
jmp case.0x4320b5.43
mov byte [0x4ad27f], 1
jmp case.0x4320b5.43
push edi
call fcn.00486906
add esp, 4
mov dword [0x4ad28c], eax
cmp eax, 0x3fff
jle case.0x4320b5.43
mov dword [0x4ad28c], 0x3fff
jmp case.0x4320b5.43
mov esi, edi
call fcn.00412e50
fmul qword [0x4a1c20]
call fcn.00493d40
mov dword [ebp - 0x20], eax
jmp case.0x4320b5.43
mov byte [0x4ad280], 1
jmp case.0x4320b5.43
mov byte [0x4ad281], 1
jmp case.0x4320b5.43
mov byte [ebp - 6], 1
mov al, byte [ebx + 1]
inc ebx
inc edi
test al, al
jne 0x432080
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.0048e850
add esp, 0xc
push 0x1ff
lea eax, [ebp - 0x4db]
push edi
push eax
mov byte [ebp - 0x4dc], 0
call fcn.0048e850
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 0x4322ab
mov byte [ebp - 0x18], 0
mov cl, byte [eax]
movsx eax, cl
sub eax, 0x7b
je 0x4321da
sub eax, 2
je 0x43229b
cmp byte [ebp - 6], 0
je 0x4321b2
inc dword [ebp - 0x14]
jmp 0x43229b
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.00411e20
add esp, 0xc
mov bl, al
jmp 0x432263
mov edi, dword [ebp - 0xc]
inc edi
push 0x7d
push edi
call fcn.00486371
mov esi, eax
add esp, 8
test esi, esi
je 0x43229b
sub eax, dword [ebp - 0xc]
dec eax
jne 0x432206
cmp byte [esi + 1], 0x7d
jne 0x43229b
inc esi
jmp 0x43220b
cmp eax, 1
jne 0x43221e
cmp byte [ebp - 6], 0
je 0x432219
inc dword [ebp - 0x14]
jmp 0x43229b
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.00411e20
mov bl, al
add esp, 0xc
test bl, bl
jne 0x43225d
mov eax, edi
call fcn.00411d70
movzx eax, ax
test ax, ax
je 0x43225d
mov ecx, eax
mov byte [ebp + ecx - 0x4dc], 1
mov byte [esi], 0x7d
mov dword [ebp - 0xc], esi
test bl, bl
je 0x43229b
movzx esi, bl
or byte [ebp + esi - 0x2dc], 1
cmp byte [ebp - 0x18], 0
lea esi, [ebp + esi - 0x2dc]
je 0x43229b
mov edx, dword [ebp - 0x18]
push edx
call dword [sym.imp.USER32.dll_IsCharAlphaA]
test eax, eax
jne 0x43229b
test byte [ebp - 5], 0x30
je 0x432298
or byte [esi], 2
jmp 0x43229b
or byte [esi], 4
mov eax, dword [ebp - 0xc]
inc eax
cmp byte [eax], 0
mov dword [ebp - 0xc], eax
jne 0x43218d
mov eax, dword [ebp - 0x14]
mov dword [0x4ad25c], 0x499869
test eax, eax
je 0x43231b
inc eax
call fcn.0048edb0
mov esi, dword [ebp - 0x1c]
mov eax, esp
mov dword [0x4ad25c], eax
cmp byte [esi], 0
mov edi, eax
je 0x432318
mov cl, byte [esi]
movsx eax, cl
sub eax, 0x7b
je 0x4322e7
sub eax, 2
je 0x432312
mov byte [edi], cl
inc edi
jmp 0x432312
lea ebx, [esi + 1]
push 0x7d
push ebx
call fcn.00486371
add esp, 8
test eax, eax
je 0x432312
cmp eax, ebx
jne 0x432304
cmp byte [eax + 1], 0x7d
jne 0x432304
inc eax
add esi, 2
cmp eax, esi
jne 0x432310
mov cl, byte [ebx]
mov byte [edi], cl
inc edi
mov esi, eax
inc esi
cmp byte [esi], 0
jne 0x4322d3
mov byte [edi], 0
mov edi, dword [ebp - 0x28]
mov dword [0x4ad26c], 0
cmp byte [edi], 0
je 0x432545
cmp dword [0x4ad268], 0
jne 0x43237d
push 0x1000
call fcn.00485539
add esp, 4
mov dword [0x4ad268], eax
test eax, eax
jne 0x432373
mov ecx, dword [ebp + 8]
push 0x499869
push 0
push str.Out_of_memory.
call fcn.0042d690
lea esp, [ebp - 0x44ec]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov dword [0x4ad270], 0x400
mov esi, dword [ebp + 8]
cmp byte [esi + 1], 3
ja 0x43238d
xor eax, eax
jmp 0x43240a
mov eax, dword [0x4ab184]
test eax, eax
je 0x4323f9
mov dl, byte [eax + 0x17]
test dl, dl
jne 0x4323a5
mov ecx, dword [eax + 0xc]
mov cl, byte [ecx + 0x17]
jmp 0x4323a7
mov cl, dl
cmp cl, 1
jne 0x4323f9
movzx ecx, byte [esi]
lea ebx, [ecx*8]
sub ebx, ecx
test byte [ebx*2 + 0x4a7936], 0x80
jne 0x4323f9
cmp dword [0x4ab394], 0
jne 0x4323ea
test dl, dl
jne 0x4323d4
mov ecx, dword [eax + 0xc]
jmp 0x4323d6
mov ecx, eax
test byte [ecx + 0x15], 0xa
jne 0x4323ea
xor edx, edx
cmp dword [ecx + 0xc], edx
setne dl
mov ecx, edx
test ecx, ecx
je 0x4323f9
cmp eax, dword [0x4aba2c]
je 0x4323f9
call fcn.004133a0
jmp 0x43240a
mov eax, dword [0x4ab1d4]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x432401
sub eax, edx
inc eax
cmp eax, dword [0x4ad278]
jbe 0x432478
mov dword [0x4ad278], eax
cmp eax, 0x1000
ja 0x432429
mov dword [0x4ad278], 0x1000
mov eax, dword [0x4ad274]
test eax, eax
je 0x43243b
push eax
call fcn.00485398
add esp, 4
mov eax, dword [0x4ad278]
push eax
call fcn.00485539
add esp, 4
mov dword [0x4ad274], eax
test eax, eax
jne 0x43247d
push 0x499869
push eax
push str.Out_of_memory.
mov ecx, esi
mov dword [0x4ad278], eax
call fcn.0042d690
lea esp, [ebp - 0x44ec]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov eax, dword [0x4ad274]
mov ecx, dword [0x4ad268]
mov edx, dword [0x4ad26c]
mov dword [ecx + edx*4], eax
cmp byte [edi], 0
mov esi, dword [0x4ad274]
mov ebx, edi
je 0x432528
lea ecx, [ecx]
mov al, byte [ebx]
cmp al, 0x2c
je 0x4324ab
mov byte [esi], al
inc esi
jmp 0x43251e
cmp byte [ebx + 1], 0x2c
jne 0x4324b8
mov byte [esi], 0x2c
inc esi
inc ebx
jmp 0x43251e
mov byte [esi], 0
mov ecx, dword [0x4ad268]
mov eax, dword [0x4ad26c]
mov edx, dword [ecx + eax*4]
cmp byte [edx], 0
je 0x4324e6
inc eax
mov dword [0x4ad26c], eax
inc esi
mov dword [ecx + eax*4], esi
mov byte [esi], 0
mov eax, dword [0x4ad26c]
mov ecx, dword [0x4ad268]
cmp byte [ebx + 1], 0
je 0x43251e
mov edx, dword [0x4ad270]
cmp eax, edx
jb 0x43251e
lea eax, [edx*4 + 0x1000]
push eax
push ecx
call fcn.00486927
add esp, 8
test eax, eax
je 0x432350
add dword [0x4ad270], 0x400
mov dword [0x4ad268], eax
inc ebx
cmp byte [ebx], 0
jne 0x4324a0
mov byte [esi], 0
mov ecx, dword [0x4ad268]
mov edx, dword [0x4ad26c]
mov eax, dword [ecx + edx*4]
cmp byte [eax], 0
je 0x432545
inc dword [0x4ad26c]
cmp byte [0x4ab385], 0
je 0x432583
mov ecx, dword [0x4ab22c]
push 0xc
push ecx
call dword [sym.imp.USER32.dll_KillTimer]
test eax, eax
je 0x432568
mov byte [0x4ab385], 0
push 0x10
call dword [sym.imp.USER32.dll_GetQueueStatus]
shr eax, 0x10
test al, 0x10
je 0x432583
push 1
push 0xffffffffffffffff
call fcn.00401350
add esp, 8
or byte [0x4abb39], 1
xor esi, esi
lea edx, [ebp - 0x44dc]
lea eax, [ebp - 0x2dc]
lea ecx, [ebp - 0x4dc]
mov byte [ebp - 0x44dc], 0
mov dword [0x4ad284], edx
mov dword [0x4ad288], esi
mov dword [0x4ad254], eax
mov dword [0x4ad258], ecx
mov dword [0x4ad250], 1
mov byte [0x4ab380], 1
cmp dword [0x4ab35c], esi
jne 0x4325e7
mov edx, dword [0x4a8a2c]
movzx eax, word [edx]
push eax
call fcn.00407f00
add esp, 4
mov eax, dword [ebp - 0x20]
cmp eax, esi
jle 0x432621
cmp byte [0x4ab385], 0
jne 0x432621
cmp eax, 0xa
jge 0x432601
mov eax, 0xa
mov ecx, dword [0x4ab22c]
push 0x403830
push eax
push 0xc
push ecx
call dword [sym.imp.USER32.dll_SetTimer]
test eax, eax
setne dl
mov byte [0x4ab385], dl
push 1
push 0x8000012f
call fcn.00401350
mov eax, dword [0x4ad250]
add esp, 8
cmp eax, 1
je 0x432621
add eax, 0xfffffffe
cmp eax, 3
ja case.default.0x432646
jmp dword [eax*4 + 0x432eb0]
mov eax, dword [0x4aba2c]
push 1
push 0
push 0xffffffffffffffff
push str.Timeout
push eax
call fcn.00475240
jmp 0x4329bc
mov ecx, dword [0x4aba2c]
push 1
push 0
push 0xffffffffffffffff
push str.Match
push ecx
call fcn.00475240
jmp 0x4329bc
mov edx, dword [str.EndKey:]
mov eax, dword [0x49e96c]
push 0x78
lea ecx, [ebp - 0xa4]
push esi
push ecx
mov dword [ebp - 0xac], edx
mov dword [ebp - 0xa8], eax
call fcn.0048e850
mov al, byte [0x4ad264]
add esp, 0xc
test al, al
je 0x4326c8
mov byte [ebp - 0xa5], al
mov byte [ebp - 0xa4], 0
jmp 0x432826
cmp byte [0x4ad266], 0
je 0x43278e
push 0xff
lea edx, [ebp - 0x1db]
push esi
push edx
mov byte [ebp - 0x1dc], 0
call fcn.0048e850
or byte [ebp - 0x1cc], 0x80
add esp, 0xc
call dword [sym.imp.USER32.dll_GetForegroundWindow]
cmp eax, esi
je 0x43273c
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 0x43273c
mov eax, dword [ebp - 0xd0]
test eax, eax
je 0x43273c
push 0
push eax
call ebx
mov esi, eax
push esi
call dword [sym.imp.USER32.dll_GetKeyboardLayout]
xor ecx, ecx
cmp dword [0x4ab3bc], ecx
push eax
setne cl
lea edx, [ebp - 0xa5]
lea eax, [ebp - 0x1dc]
xor bl, bl
push ecx
movzx ecx, byte [0x4ad260]
push edx
push eax
push ecx
call fcn.00412380
movzx edx, ax
movzx eax, byte [0x4ad260]
add esp, 4
push edx
push eax
call dword [sym.imp.USER32.dll_ToAsciiEx]
mov byte [ebp + eax - 0xa5], bl
jmp 0x432826
cmp byte [0x4ad265], 0
je 0x4327ed
mov cx, word [0x4ad262]
xor eax, eax
cmp word [eax*8 + 0x4a89c4], cx
je 0x4327ce
inc eax
cmp eax, 0xd
jl 0x4327a0
movzx eax, cx
push eax
push str.sc_03X
mov esi, 0x79
lea edi, [ebp - 0xa5]
call fcn.00472490
add esp, 8
jmp 0x432808
mov ecx, dword [eax*8 + 0x4a89c0]
push 0x78
push ecx
lea edx, [ebp - 0xa5]
push edx
call fcn.00488320
add esp, 0xc
mov byte [ebp - 0x2d], 0
jmp 0x432808
mov bl, byte [0x4ad260]
push 1
mov eax, 0x79
lea ecx, [ebp - 0xa5]
call fcn.00411be0
add esp, 4
mov cl, byte [ebp - 0xa5]
sub cl, 0x61
cmp cl, 0x19
ja 0x432826
cmp byte [ebp - 0xa4], 0
jne 0x432826
add byte [ebp - 0xa5], 0xe0
mov eax, dword [0x4aba2c]
push 1
push 0
push 0xffffffffffffffff
lea edx, [ebp - 0xac]
push edx
push eax
call fcn.00475240
jmp 0x4329bc
mov ecx, dword [0x4aba2c]
push 1
push 0
push 0xffffffffffffffff
push 0x49cee4
push ecx
call fcn.00475240
jmp 0x4329bc
mov ecx, dword [0x4aba2c]
mov al, byte [ecx + 0x17]
mov dword [ebp - 0xc], ecx
test al, al
jne 0x432888
mov edx, dword [ecx + 0xc]
push 1
push 0
push 0xffffffffffffffff
push str.NewInput
push edx
call fcn.00475240
jmp 0x4329bc
cmp dword [ecx + 8], str.NewInput
lea edx, [ecx + 8]
mov dword [ebp - 0x14], edx
jne 0x43289c
mov edx, dword [ecx + 0xc]
jmp 0x4328a1
mov edx, 8
mov dword [ebp - 0x1c], edx
lea ebx, [edx + 1]
cmp al, 2
jne 0x432909
mov ebx, edx
cmp dword [0x4ad8fc], esi
jne 0x4329bc
cmp edx, 0xffffffff
jne 0x4328c5
mov ebx, 8
jmp 0x4328c9
test edx, edx
je 0x4328f8
lea edi, [ebx + 1]
mov esi, 0x4ad8f0
call fcn.00404360
test eax, eax
je 0x4329bc
mov eax, dword [0x4ad8fc]
push ebx
push str.NewInput
push eax
mov esi, eax
call fcn.00488320
add esp, 0xc
mov byte [esi + ebx], 0
push 1
mov ecx, 0x4ad8f0
call fcn.004043d0
jmp 0x4329bc
cmp ebx, dword [0x4a788c]
jbe 0x43292f
cmp ebx, dword [ecx + 0x10]
jbe 0x43292f
push 0x499869
push 0x4a0b9c
mov ecx, 0x4ad290
call fcn.0042d940
jmp 0x4329bc
cmp ebx, 2
jae 0x432942
push 4
xor al, al
call fcn.004757e0
jmp 0x4329bc
mov al, byte [ecx + 0x15]
lea edi, [ecx + 0x15]
test al, 2
je 0x43295a
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 0x432995
mov cl, byte [esi + 0x14]
cmp cl, 1
jbe 0x432a37
cmp cl, 2
je 0x432a71
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 0x4329b3
push edi
push str.NewInput
push eax
call fcn.00485f60
add esp, 0xc
mov eax, dword [ebx]
mov byte [edi + eax], 0
mov dword [esi + 0xc], edi
cmp byte [0x4ab385], 0
mov edi, dword [ebp - 0x10]
mov dword [0x4ad250], 0
je 0x432a07
mov ecx, dword [0x4ab22c]
push 0xc
push ecx
call dword [sym.imp.USER32.dll_KillTimer]
test eax, eax
je 0x4329ec
mov byte [0x4ab385], 0
push 0x10
call dword [sym.imp.USER32.dll_GetQueueStatus]
shr eax, 0x10
test al, 0x10
je 0x432a07
push 1
push 0xffffffffffffffff
call fcn.00401350
add esp, 8
mov dl, byte [edi + 0x17]
test dl, dl
jne 0x432b84
mov eax, dword [edi + 0xc]
push 1
push 0
push 0xffffffffffffffff
lea edx, [ebp - 0x44dc]
push edx
push eax
call fcn.00475240
lea esp, [ebp - 0x44ec]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
cmp ebx, 0x40
ja 0x432a71
cmp ebx, 4
ja 0x432a48
mov esi, 4
jmp 0x432a56
mov edx, 8
cmp edx, ebx
sbb esi, esi
and esi, 0x38
add esi, edx
mov eax, esi
call fcn.0046f950
test eax, eax
je 0x4329bc
mov ecx, dword [ebp - 0xc]
mov byte [ecx + 0x14], 1
jmp 0x432985
cmp ebx, 0x10
jae 0x432a80
mov esi, 0x10
jmp 0x432afb
cmp ebx, 0x104
jae 0x432a8f
mov esi, 0x104
jmp 0x432afb
cmp ebx, 0x28000
jae 0x432aca
mov dword [ebp + 8], ebx
fild dword [ebp + 8]
test ebx, ebx
jns 0x432aa7
fadd qword [0x4a1bf0]
fmul qword [0x4a1bf8]
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 0x432afb
cmp ebx, 0x190000
jae 0x432ada
lea esi, [ebx + 0x4000]
jmp 0x432afb
cmp ebx, 0x640000
jae 0x432af5
mov eax, 0x51eb851f
mul ebx
mov esi, edx
mov edx, dword [ebp + 8]
shr esi, 5
add esi, ebx
jmp 0x432afb
lea esi, [ebx + 0x10000]
mov eax, dword [0x4a788c]
cmp esi, eax
jbe 0x432b06
mov esi, eax
cmp cl, 2
jne 0x432b3c
test edx, edx
je 0x432b3c
mov edx, dword [ebp - 0x14]
mov eax, dword [edx]
push eax
mov bl, 1
call fcn.00485398
add esp, 4
test esi, esi
js 0x432b40
push esi
call fcn.00485539
add esp, 4
test eax, eax
je 0x432b40
mov ecx, dword [ebp - 0xc]
mov byte [ecx + 0x14], 2
jmp 0x432985
xor bl, bl
jmp 0x432b1f
test bl, bl
je 0x432b59
mov edx, dword [ebp - 0xc]
mov eax, dword [ebp - 0x14]
mov dword [edx + 0x10], 0
mov dword [eax], 0x4acb37
jmp 0x432b61
mov ecx, dword [ebp - 0x14]
mov edx, dword [ecx]
mov byte [edx], 0
mov eax, dword [ebp - 0xc]
push 0x499869
push str.Out_of_memory.
mov ecx, 0x4ad290
mov dword [eax + 0xc], 0
call fcn.0042d940
jmp 0x4329bc
lea ecx, [ebp - 0x44dc]
cmp dword [edi + 8], ecx
jne 0x432b97
mov esi, dword [edi + 0xc]
mov dword [ebp - 0x20], esi
jmp 0x432bae
lea eax, [ebp - 0x44dc]
lea esi, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x432ba0
sub eax, esi
mov esi, eax
mov dword [ebp - 0x20], eax
lea ebx, [esi + 1]
cmp dl, 2
jne 0x432c32
cmp dword [0x4ad8fc], 0
mov ebx, esi
jne 0x432d2b
cmp esi, 0xffffffff
jne 0x432be2
lea eax, [ebp - 0x44dc]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x432bd7
sub eax, edx
mov ebx, eax
test ebx, ebx
je 0x432c17
lea edi, [ebx + 1]
mov esi, 0x4ad8f0
call fcn.00404360
test eax, eax
je 0x432d2b
mov eax, dword [0x4ad8fc]
push ebx
lea edx, [ebp - 0x44dc]
push edx
push eax
mov esi, eax
call fcn.00488320
add esp, 0xc
mov byte [esi + ebx], 0
push 1
mov ecx, 0x4ad8f0
call fcn.004043d0
lea esp, [ebp - 0x44ec]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
cmp ebx, dword [0x4a788c]
jbe 0x432c62
cmp ebx, dword [edi + 0x10]
jbe 0x432c62
push 0x499869
push 0x4a0b9c
mov ecx, 0x4ad290
call fcn.0042d940
lea esp, [ebp - 0x44ec]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
cmp ebx, 2
jae 0x432c86
push 4
xor al, al
mov ecx, edi
call fcn.004757e0
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 0x432c9c
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 0x432cc9
mov cl, byte [edi + 0x14]
cmp cl, 1
jbe 0x432d01
cmp cl, 2
je 0x432d45
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 0x432ce3
push esi
mov edx, ecx
push edx
push eax
call fcn.00485f60
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 0x432d45
cmp ebx, 4
ja 0x432d12
mov esi, 4
jmp 0x432d20
mov eax, 8
cmp eax, ebx
sbb esi, esi
and esi, 0x38
add esi, eax
mov eax, esi
call fcn.0046f950
test eax, eax
jne 0x432d3c
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 0x432cbc
cmp ebx, 0x10
jae 0x432d54
mov esi, 0x10
jmp 0x432dcf
cmp ebx, 0x104
jae 0x432d66
mov esi, 0x104
jmp 0x432dcf
cmp ebx, 0x28000
jae 0x432da1
mov dword [ebp + 8], ebx
fild dword [ebp + 8]
test ebx, ebx
jns 0x432d7e
fadd qword [0x4a1bf0]
fmul qword [0x4a1bf8]
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 0x432dcf
cmp ebx, 0x190000
jae 0x432db1
lea esi, [ebx + 0x4000]
jmp 0x432dcf
cmp ebx, 0x640000
jae 0x432dc9
mov eax, 0x51eb851f
mul ebx
mov esi, edx
shr esi, 5
add esi, ebx
jmp 0x432dcf
lea esi, [ebx + 0x10000]
mov eax, dword [0x4a788c]
cmp esi, eax
jbe 0x432dda
mov esi, eax
cmp cl, 2
jne 0x432e0d
cmp dword [edi + 0x10], 0
je 0x432e0d
mov ecx, dword [edi + 8]
push ecx
mov bl, 1
call fcn.00485398
add esp, 4
test esi, esi
js 0x432e11
push esi
call fcn.00485539
add esp, 4
test eax, eax
je 0x432e11
mov byte [edi + 0x14], 2
jmp 0x432cbc
xor bl, bl
jmp 0x432df3
test bl, bl
je 0x432e25
mov dword [edi + 0x10], 0
mov dword [edi + 8], 0x4acb37
jmp 0x432e2b
mov edx, dword [edi + 8]
mov byte [edx], 0
push 0x499869
push str.Out_of_memory.
mov ecx, 0x4ad290
mov dword [edi + 0xc], 0
call fcn.0042d940
lea esp, [ebp - 0x44ec]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4