Function at 0x432370
Capabilities:
Get keyboard layout

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x44e0
call fcn.00491fc0
mov eax, dword [0x4ab1e8]
push ebx
push esi
push edi
xor edi, edi
mov dword [ebp - 0x10], eax
cmp eax, edi
jne 0x4323bf
cmp dword [0x4ac350], 1
mov edx, dword [ebp + 8]
sete al
test al, al
sete al
movzx ecx, al
push ecx
push edx
mov dword [0x4ac350], edi
call fcn.0042d920
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 [0x4ac350], edi
mov dword [0x4ac37c], 1
mov word [0x4ac380], di
mov dword [0x4ac38c], 0x3fff
mov al, byte [ebx]
mov dword [ebp - 0x1c], esi
mov dword [ebp - 0x20], edi
mov byte [ebp - 6], 0
test al, al
je 0x4324d0
lea edi, [ebx + 1]
jmp 0x432410
movzx esi, al
test esi, 0xffffff80
jne 0x43242d
push 2
push esi
call fcn.00486d2e
add esp, 8
test eax, eax
je 0x43242d
and esi, 0xffffffdf
mov eax, esi
movsx eax, al
add eax, 0xffffffd6
cmp eax, 0x2c
ja case.0x432445.43
movzx ecx, byte [eax + 0x433210]
jmp dword [ecx*4 + 0x4331e8]
mov byte [0x4ac37c], 0
jmp case.0x432445.43
mov byte [0x4ac37d], 1
jmp case.0x432445.43
mov byte [0x4ac37e], 1
jmp case.0x432445.43
mov byte [0x4ac37f], 1
jmp case.0x432445.43
push edi
call fcn.00486d76
add esp, 4
mov dword [0x4ac38c], eax
cmp eax, 0x3fff
jle case.0x432445.43
mov dword [0x4ac38c], 0x3fff
jmp case.0x432445.43
mov esi, edi
call fcn.00413470
fmul qword [0x4a1cd0]
call fcn.004941b0
mov dword [ebp - 0x20], eax
jmp case.0x432445.43
mov byte [0x4ac380], 1
jmp case.0x432445.43
mov byte [0x4ac381], 1
jmp case.0x432445.43
mov byte [ebp - 6], 1
mov al, byte [ebx + 1]
inc ebx
inc edi
test al, al
jne 0x432410
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.0048ecc0
add esp, 0xc
push 0x1ff
lea eax, [ebp - 0x4db]
push edi
push eax
mov byte [ebp - 0x4dc], 0
call fcn.0048ecc0
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 0x43263b
mov byte [ebp - 0x18], 0
mov cl, byte [eax]
movsx eax, cl
sub eax, 0x7b
je 0x43256a
sub eax, 2
je 0x43262b
cmp byte [ebp - 6], 0
je 0x432542
inc dword [ebp - 0x14]
jmp 0x43262b
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.00412440
add esp, 0xc
mov bl, al
jmp 0x4325f3
mov edi, dword [ebp - 0xc]
inc edi
push 0x7d
push edi
call fcn.004867e1
mov esi, eax
add esp, 8
test esi, esi
je 0x43262b
sub eax, dword [ebp - 0xc]
dec eax
jne 0x432596
cmp byte [esi + 1], 0x7d
jne 0x43262b
inc esi
jmp 0x43259b
cmp eax, 1
jne 0x4325ae
cmp byte [ebp - 6], 0
je 0x4325a9
inc dword [ebp - 0x14]
jmp 0x43262b
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.00412440
mov bl, al
add esp, 0xc
test bl, bl
jne 0x4325ed
mov eax, edi
call fcn.00412390
movzx eax, ax
test ax, ax
je 0x4325ed
mov ecx, eax
mov byte [ebp + ecx - 0x4dc], 1
mov byte [esi], 0x7d
mov dword [ebp - 0xc], esi
test bl, bl
je 0x43262b
movzx esi, bl
or byte [ebp + esi - 0x2dc], 1
cmp byte [ebp - 0x18], 0
lea esi, [ebp + esi - 0x2dc]
je 0x43262b
mov edx, dword [ebp - 0x18]
push edx
call dword [sym.imp.USER32.dll_IsCharAlphaA]
test eax, eax
jne 0x43262b
test byte [ebp - 5], 0x30
je 0x432628
or byte [esi], 2
jmp 0x43262b
or byte [esi], 4
mov eax, dword [ebp - 0xc]
inc eax
cmp byte [eax], 0
mov dword [ebp - 0xc], eax
jne 0x43251d
mov eax, dword [ebp - 0x14]
mov dword [0x4ac35c], 0x499861
test eax, eax
je 0x4326ab
inc eax
call fcn.0048f220
mov esi, dword [ebp - 0x1c]
mov eax, esp
mov dword [0x4ac35c], eax
cmp byte [esi], 0
mov edi, eax
je 0x4326a8
mov cl, byte [esi]
movsx eax, cl
sub eax, 0x7b
je 0x432677
sub eax, 2
je 0x4326a2
mov byte [edi], cl
inc edi
jmp 0x4326a2
lea ebx, [esi + 1]
push 0x7d
push ebx
call fcn.004867e1
add esp, 8
test eax, eax
je 0x4326a2
cmp eax, ebx
jne 0x432694
cmp byte [eax + 1], 0x7d
jne 0x432694
inc eax
add esi, 2
cmp eax, esi
jne 0x4326a0
mov cl, byte [ebx]
mov byte [edi], cl
inc edi
mov esi, eax
inc esi
cmp byte [esi], 0
jne 0x432663
mov byte [edi], 0
mov edi, dword [ebp - 0x28]
mov dword [0x4ac36c], 0
cmp byte [edi], 0
je 0x4328d5
cmp dword [0x4ac368], 0
jne 0x43270d
push 0x1000
call fcn.004859a9
add esp, 4
mov dword [0x4ac368], eax
test eax, eax
jne 0x432703
mov ecx, dword [ebp + 8]
push 0x499861
push 0
push str.Out_of_memory.
call fcn.0042daf0
lea esp, [ebp - 0x44ec]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov dword [0x4ac370], 0x400
mov esi, dword [ebp + 8]
cmp byte [esi + 1], 3
ja 0x43271d
xor eax, eax
jmp 0x43279a
mov eax, dword [0x4ab1f4]
test eax, eax
je 0x432789
mov dl, byte [eax + 0x17]
test dl, dl
jne 0x432735
mov ecx, dword [eax + 0xc]
mov cl, byte [ecx + 0x17]
jmp 0x432737
mov cl, dl
cmp cl, 1
jne 0x432789
movzx ecx, byte [esi]
lea ebx, [ecx*8]
sub ebx, ecx
test byte [ebx*2 + 0x4a7996], 0x80
jne 0x432789
cmp dword [0x4ab408], 0
jne 0x43277a
test dl, dl
jne 0x432764
mov ecx, dword [eax + 0xc]
jmp 0x432766
mov ecx, eax
test byte [ecx + 0x15], 0xa
jne 0x43277a
xor edx, edx
cmp dword [ecx + 0xc], edx
setne dl
mov ecx, edx
test ecx, ecx
je 0x432789
cmp eax, dword [0x4abaa0]
je 0x432789
call fcn.00413930
jmp 0x43279a
mov eax, dword [0x4ab24c]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x432791
sub eax, edx
inc eax
cmp eax, dword [0x4ac378]
jbe 0x432808
mov dword [0x4ac378], eax
cmp eax, 0x1000
ja 0x4327b9
mov dword [0x4ac378], 0x1000
mov eax, dword [0x4ac374]
test eax, eax
je 0x4327cb
push eax
call fcn.00485808
add esp, 4
mov eax, dword [0x4ac378]
push eax
call fcn.004859a9
add esp, 4
mov dword [0x4ac374], eax
test eax, eax
jne 0x43280d
push 0x499861
push eax
push str.Out_of_memory.
mov ecx, esi
mov dword [0x4ac378], eax
call fcn.0042daf0
lea esp, [ebp - 0x44ec]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov eax, dword [0x4ac374]
mov ecx, dword [0x4ac368]
mov edx, dword [0x4ac36c]
mov dword [ecx + edx*4], eax
cmp byte [edi], 0
mov esi, dword [0x4ac374]
mov ebx, edi
je 0x4328b8
lea ecx, [ecx]
mov al, byte [ebx]
cmp al, 0x2c
je 0x43283b
mov byte [esi], al
inc esi
jmp 0x4328ae
cmp byte [ebx + 1], 0x2c
jne 0x432848
mov byte [esi], 0x2c
inc esi
inc ebx
jmp 0x4328ae
mov byte [esi], 0
mov ecx, dword [0x4ac368]
mov eax, dword [0x4ac36c]
mov edx, dword [ecx + eax*4]
cmp byte [edx], 0
je 0x432876
inc eax
mov dword [0x4ac36c], eax
inc esi
mov dword [ecx + eax*4], esi
mov byte [esi], 0
mov eax, dword [0x4ac36c]
mov ecx, dword [0x4ac368]
cmp byte [ebx + 1], 0
je 0x4328ae
mov edx, dword [0x4ac370]
cmp eax, edx
jb 0x4328ae
lea eax, [edx*4 + 0x1000]
push eax
push ecx
call fcn.00486d97
add esp, 8
test eax, eax
je 0x4326e0
add dword [0x4ac370], 0x400
mov dword [0x4ac368], eax
inc ebx
cmp byte [ebx], 0
jne 0x432830
mov byte [esi], 0
mov ecx, dword [0x4ac368]
mov edx, dword [0x4ac36c]
mov eax, dword [ecx + edx*4]
cmp byte [eax], 0
je 0x4328d5
inc dword [0x4ac36c]
cmp byte [0x4ab3f9], 0
je 0x432913
mov ecx, dword [0x4ab2a0]
push 0xc
push ecx
call dword [sym.imp.USER32.dll_KillTimer]
test eax, eax
je 0x4328f8
mov byte [0x4ab3f9], 0
push 0x10
call dword [sym.imp.USER32.dll_GetQueueStatus]
shr eax, 0x10
test al, 0x10
je 0x432913
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 [0x4ac384], edx
mov dword [0x4ac388], esi
mov dword [0x4ac354], eax
mov dword [0x4ac358], ecx
mov dword [0x4ac350], 1
mov byte [0x4ab3f4], 1
cmp dword [0x4ab3d0], esi
jne 0x432977
mov edx, dword [0x4a8a8c]
movzx eax, word [edx]
push eax
call fcn.00407b70
add esp, 4
mov eax, dword [ebp - 0x20]
cmp eax, esi
jle 0x4329b1
cmp byte [0x4ab3f9], 0
jne 0x4329b1
cmp eax, 0xa
jge 0x432991
mov eax, 0xa
mov ecx, dword [0x4ab2a0]
push 0x4037e0
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 [0x4ac350]
add esp, 8
cmp eax, 1
je 0x4329b1
add eax, 0xfffffffe
cmp eax, 3
ja case.default.0x4329d6
jmp dword [eax*4 + 0x433240]
mov eax, dword [0x4abaa0]
push 1
push 0
push 0xffffffffffffffff
push str.Timeout
push eax
call fcn.004756a0
jmp 0x432d4c
mov ecx, dword [0x4abaa0]
push 1
push 0
push 0xffffffffffffffff
push str.Match
push ecx
call fcn.004756a0
jmp 0x432d4c
mov edx, dword [str.EndKey:]
mov eax, dword [0x49e984]
push 0x78
lea ecx, [ebp - 0xa4]
push esi
push ecx
mov dword [ebp - 0xac], edx
mov dword [ebp - 0xa8], eax
call fcn.0048ecc0
mov al, byte [0x4ac364]
add esp, 0xc
test al, al
je 0x432a58
mov byte [ebp - 0xa5], al
mov byte [ebp - 0xa4], 0
jmp 0x432bb6
cmp byte [0x4ac366], 0
je 0x432b1e
push 0xff
lea edx, [ebp - 0x1db]
push esi
push edx
mov byte [ebp - 0x1dc], 0
call fcn.0048ecc0
or byte [ebp - 0x1cc], 0x80
add esp, 0xc
call dword [sym.imp.USER32.dll_GetForegroundWindow]
cmp eax, esi
je 0x432acc
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 0x432acc
mov eax, dword [ebp - 0xd0]
test eax, eax
je 0x432acc
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 [0x4ac360]
push edx
push eax
push ecx
call fcn.004129a0
movzx edx, ax
movzx eax, byte [0x4ac360]
add esp, 4
push edx
push eax
call dword [sym.imp.USER32.dll_ToAsciiEx]
mov byte [ebp + eax - 0xa5], bl
jmp 0x432bb6
cmp byte [0x4ac365], 0
je 0x432b7d
mov cx, word [0x4ac362]
xor eax, eax
cmp word [eax*8 + 0x4a8a24], cx
je 0x432b5e
inc eax
cmp eax, 0xd
jl 0x432b30
movzx eax, cx
push eax
push str.sc_03X
mov esi, 0x79
lea edi, [ebp - 0xa5]
call fcn.004728f0
add esp, 8
jmp 0x432b98
mov ecx, dword [eax*8 + 0x4a8a20]
push 0x78
push ecx
lea edx, [ebp - 0xa5]
push edx
call fcn.00488790
add esp, 0xc
mov byte [ebp - 0x2d], 0
jmp 0x432b98
mov bl, byte [0x4ac360]
push 1
mov eax, 0x79
lea ecx, [ebp - 0xa5]
call fcn.00412200
add esp, 4
mov cl, byte [ebp - 0xa5]
sub cl, 0x61
cmp cl, 0x19
ja 0x432bb6
cmp byte [ebp - 0xa4], 0
jne 0x432bb6
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.004756a0
jmp 0x432d4c
mov ecx, dword [0x4abaa0]
push 1
push 0
push 0xffffffffffffffff
push 0x49cec4
push ecx
call fcn.004756a0
jmp 0x432d4c
mov ecx, dword [0x4abaa0]
mov al, byte [ecx + 0x17]
mov dword [ebp - 0xc], ecx
test al, al
jne 0x432c18
mov edx, dword [ecx + 0xc]
push 1
push 0
push 0xffffffffffffffff
push str.NewInput
push edx
call fcn.004756a0
jmp 0x432d4c
cmp dword [ecx + 8], str.NewInput
lea edx, [ecx + 8]
mov dword [ebp - 0x14], edx
jne 0x432c2c
mov edx, dword [ecx + 0xc]
jmp 0x432c31
mov edx, 8
mov dword [ebp - 0x1c], edx
lea ebx, [edx + 1]
cmp al, 2
jne 0x432c99
mov ebx, edx
cmp dword [0x4ac340], esi
jne 0x432d4c
cmp edx, 0xffffffff
jne 0x432c55
mov ebx, 8
jmp 0x432c59
test edx, edx
je 0x432c88
lea edi, [ebx + 1]
mov esi, 0x4ac334
call fcn.00404300
test eax, eax
je 0x432d4c
mov eax, dword [0x4ac340]
push ebx
push str.NewInput
push eax
mov esi, eax
call fcn.00488790
add esp, 0xc
mov byte [esi + ebx], 0
push 1
mov ecx, 0x4ac334
call fcn.00404370
jmp 0x432d4c
cmp ebx, dword [0x4a78f4]
jbe 0x432cbf
cmp ebx, dword [ecx + 0x10]
jbe 0x432cbf
push 0x499861
push 0x4a0bc4
mov ecx, 0x4ac390
call fcn.0042ddb0
jmp 0x432d4c
cmp ebx, 2
jae 0x432cd2
push 4
xor al, al
call fcn.00475c50
jmp 0x432d4c
mov al, byte [ecx + 0x15]
lea edi, [ecx + 0x15]
test al, 2
je 0x432cea
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 0x432d25
mov cl, byte [esi + 0x14]
cmp cl, 1
jbe 0x432dc7
cmp cl, 2
je 0x432e01
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 0x432d43
push edi
push str.NewInput
push eax
call fcn.004863d0
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 [0x4ac350], 0
je 0x432d97
mov ecx, dword [0x4ab2a0]
push 0xc
push ecx
call dword [sym.imp.USER32.dll_KillTimer]
test eax, eax
je 0x432d7c
mov byte [0x4ab3f9], 0
push 0x10
call dword [sym.imp.USER32.dll_GetQueueStatus]
shr eax, 0x10
test al, 0x10
je 0x432d97
push 1
push 0xffffffffffffffff
call fcn.004013c0
add esp, 8
mov dl, byte [edi + 0x17]
test dl, dl
jne 0x432f14
mov eax, dword [edi + 0xc]
push 1
push 0
push 0xffffffffffffffff
lea edx, [ebp - 0x44dc]
push edx
push eax
call fcn.004756a0
lea esp, [ebp - 0x44ec]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
cmp ebx, 0x40
ja 0x432e01
cmp ebx, 4
ja 0x432dd8
mov esi, 4
jmp 0x432de6
mov edx, 8
cmp edx, ebx
sbb esi, esi
and esi, 0x38
add esi, edx
mov eax, esi
call fcn.0046fd20
test eax, eax
je 0x432d4c
mov ecx, dword [ebp - 0xc]
mov byte [ecx + 0x14], 1
jmp 0x432d15
cmp ebx, 0x10
jae 0x432e10
mov esi, 0x10
jmp 0x432e8b
cmp ebx, 0x104
jae 0x432e1f
mov esi, 0x104
jmp 0x432e8b
cmp ebx, 0x28000
jae 0x432e5a
mov dword [ebp + 8], ebx
fild dword [ebp + 8]
test ebx, ebx
jns 0x432e37
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 0x432e8b
cmp ebx, 0x190000
jae 0x432e6a
lea esi, [ebx + 0x4000]
jmp 0x432e8b
cmp ebx, 0x640000
jae 0x432e85
mov eax, 0x51eb851f
mul ebx
mov esi, edx
mov edx, dword [ebp + 8]
shr esi, 5
add esi, ebx
jmp 0x432e8b
lea esi, [ebx + 0x10000]
mov eax, dword [0x4a78f4]
cmp esi, eax
jbe 0x432e96
mov esi, eax
cmp cl, 2
jne 0x432ecc
test edx, edx
je 0x432ecc
mov edx, dword [ebp - 0x14]
mov eax, dword [edx]
push eax
mov bl, 1
call fcn.00485808
add esp, 4
test esi, esi
js 0x432ed0
push esi
call fcn.004859a9
add esp, 4
test eax, eax
je 0x432ed0
mov ecx, dword [ebp - 0xc]
mov byte [ecx + 0x14], 2
jmp 0x432d15
xor bl, bl
jmp 0x432eaf
test bl, bl
je 0x432ee9
mov edx, dword [ebp - 0xc]
mov eax, dword [ebp - 0x14]
mov dword [edx + 0x10], 0
mov dword [eax], 0x4abc1b
jmp 0x432ef1
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, 0x4ac390
mov dword [eax + 0xc], 0
call fcn.0042ddb0
jmp 0x432d4c
lea ecx, [ebp - 0x44dc]
cmp dword [edi + 8], ecx
jne 0x432f27
mov esi, dword [edi + 0xc]
mov dword [ebp - 0x20], esi
jmp 0x432f3e
lea eax, [ebp - 0x44dc]
lea esi, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x432f30
sub eax, esi
mov esi, eax
mov dword [ebp - 0x20], eax
lea ebx, [esi + 1]
cmp dl, 2
jne 0x432fc2
cmp dword [0x4ac340], 0
mov ebx, esi
jne 0x4330bb
cmp esi, 0xffffffff
jne 0x432f72
lea eax, [ebp - 0x44dc]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x432f67
sub eax, edx
mov ebx, eax
test ebx, ebx
je 0x432fa7
lea edi, [ebx + 1]
mov esi, 0x4ac334
call fcn.00404300
test eax, eax
je 0x4330bb
mov eax, dword [0x4ac340]
push ebx
lea edx, [ebp - 0x44dc]
push edx
push eax
mov esi, eax
call fcn.00488790
add esp, 0xc
mov byte [esi + ebx], 0
push 1
mov ecx, 0x4ac334
call fcn.00404370
lea esp, [ebp - 0x44ec]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
cmp ebx, dword [0x4a78f4]
jbe 0x432ff2
cmp ebx, dword [edi + 0x10]
jbe 0x432ff2
push 0x499861
push 0x4a0bc4
mov ecx, 0x4ac390
call fcn.0042ddb0
lea esp, [ebp - 0x44ec]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
cmp ebx, 2
jae 0x433016
push 4
xor al, al
mov ecx, edi
call fcn.00475c50
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 0x43302c
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 0x433059
mov cl, byte [edi + 0x14]
cmp cl, 1
jbe 0x433091
cmp cl, 2
je 0x4330d5
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 0x433073
push esi
mov edx, ecx
push edx
push eax
call fcn.004863d0
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 0x4330d5
cmp ebx, 4
ja 0x4330a2
mov esi, 4
jmp 0x4330b0
mov eax, 8
cmp eax, ebx
sbb esi, esi
and esi, 0x38
add esi, eax
mov eax, esi
call fcn.0046fd20
test eax, eax
jne 0x4330cc
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 0x43304c
cmp ebx, 0x10
jae 0x4330e4
mov esi, 0x10
jmp 0x43315f
cmp ebx, 0x104
jae 0x4330f6
mov esi, 0x104
jmp 0x43315f
cmp ebx, 0x28000
jae 0x433131
mov dword [ebp + 8], ebx
fild dword [ebp + 8]
test ebx, ebx
jns 0x43310e
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 0x43315f
cmp ebx, 0x190000
jae 0x433141
lea esi, [ebx + 0x4000]
jmp 0x43315f
cmp ebx, 0x640000
jae 0x433159
mov eax, 0x51eb851f
mul ebx
mov esi, edx
shr esi, 5
add esi, ebx
jmp 0x43315f
lea esi, [ebx + 0x10000]
mov eax, dword [0x4a78f4]
cmp esi, eax
jbe 0x43316a
mov esi, eax
cmp cl, 2
jne 0x43319d
cmp dword [edi + 0x10], 0
je 0x43319d
mov ecx, dword [edi + 8]
push ecx
mov bl, 1
call fcn.00485808
add esp, 4
test esi, esi
js 0x4331a1
push esi
call fcn.004859a9
add esp, 4
test eax, eax
je 0x4331a1
mov byte [edi + 0x14], 2
jmp 0x43304c
xor bl, bl
jmp 0x433183
test bl, bl
je 0x4331b5
mov dword [edi + 0x10], 0
mov dword [edi + 8], 0x4abc1b
jmp 0x4331bb
mov edx, dword [edi + 8]
mov byte [edx], 0
push 0x499861
push str.Out_of_memory.
mov ecx, 0x4ac390
mov dword [edi + 0xc], 0
call fcn.0042ddb0
lea esp, [ebp - 0x44ec]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4