Function at 0x4327b0
Capabilities:
Get keyboard layout

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x44e0
call fcn.004925b0
mov eax, dword [0x4ab1b8]
push ebx
push esi
push edi
xor edi, edi
mov dword [ebp - 0x10], eax
cmp eax, edi
jne 0x4327ff
cmp dword [0x4ad2b8], 1
mov edx, dword [ebp + 8]
sete al
test al, al
sete al
movzx ecx, al
push ecx
push edx
mov dword [0x4ad2b8], edi
call fcn.0042dc30
lea esp, [ebp - 0x44ec]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov eax, dword [0x4ab21c]
mov ebx, dword [0x4ab214]
mov esi, dword [0x4ab218]
mov dword [ebp - 0x28], eax
mov dword [0x4ad2b8], edi
mov dword [0x4ad2e4], 1
mov word [0x4ad2e8], di
mov dword [0x4ad2f4], 0x3fff
mov al, byte [ebx]
mov dword [ebp - 0x1c], esi
mov dword [ebp - 0x20], edi
mov byte [ebp - 6], 0
test al, al
je 0x432910
lea edi, [ebx + 1]
jmp 0x432850
movzx esi, al
test esi, 0xffffff80
jne 0x43286d
push 2
push esi
call fcn.0048731e
add esp, 8
test eax, eax
je 0x43286d
and esi, 0xffffffdf
mov eax, esi
movsx eax, al
add eax, 0xffffffd6
cmp eax, 0x2c
ja case.0x432885.43
movzx ecx, byte [eax + 0x433650]
jmp dword [ecx*4 + 0x433628]
mov byte [0x4ad2e4], 0
jmp case.0x432885.43
mov byte [0x4ad2e5], 1
jmp case.0x432885.43
mov byte [0x4ad2e6], 1
jmp case.0x432885.43
mov byte [0x4ad2e7], 1
jmp case.0x432885.43
push edi
call fcn.00487366
add esp, 4
mov dword [0x4ad2f4], eax
cmp eax, 0x3fff
jle case.0x432885.43
mov dword [0x4ad2f4], 0x3fff
jmp case.0x432885.43
mov esi, edi
call fcn.004135a0
fmul qword [0x4a1ce8]
call fcn.004947a0
mov dword [ebp - 0x20], eax
jmp case.0x432885.43
mov byte [0x4ad2e8], 1
jmp case.0x432885.43
mov byte [0x4ad2e9], 1
jmp case.0x432885.43
mov byte [ebp - 6], 1
mov al, byte [ebx + 1]
inc ebx
inc edi
test al, al
jne 0x432850
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.0048f2b0
add esp, 0xc
push 0x1ff
lea eax, [ebp - 0x4db]
push edi
push eax
mov byte [ebp - 0x4dc], 0
call fcn.0048f2b0
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 0x432a7b
mov byte [ebp - 0x18], 0
mov cl, byte [eax]
movsx eax, cl
sub eax, 0x7b
je 0x4329aa
sub eax, 2
je 0x432a6b
cmp byte [ebp - 6], 0
je 0x432982
inc dword [ebp - 0x14]
jmp 0x432a6b
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.00412570
add esp, 0xc
mov bl, al
jmp 0x432a33
mov edi, dword [ebp - 0xc]
inc edi
push 0x7d
push edi
call fcn.00486dd1
mov esi, eax
add esp, 8
test esi, esi
je 0x432a6b
sub eax, dword [ebp - 0xc]
dec eax
jne 0x4329d6
cmp byte [esi + 1], 0x7d
jne 0x432a6b
inc esi
jmp 0x4329db
cmp eax, 1
jne 0x4329ee
cmp byte [ebp - 6], 0
je 0x4329e9
inc dword [ebp - 0x14]
jmp 0x432a6b
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.00412570
mov bl, al
add esp, 0xc
test bl, bl
jne 0x432a2d
mov eax, edi
call fcn.004124c0
movzx eax, ax
test ax, ax
je 0x432a2d
mov ecx, eax
mov byte [ebp + ecx - 0x4dc], 1
mov byte [esi], 0x7d
mov dword [ebp - 0xc], esi
test bl, bl
je 0x432a6b
movzx esi, bl
or byte [ebp + esi - 0x2dc], 1
cmp byte [ebp - 0x18], 0
lea esi, [ebp + esi - 0x2dc]
je 0x432a6b
mov edx, dword [ebp - 0x18]
push edx
call dword [sym.imp.USER32.dll_IsCharAlphaA]
test eax, eax
jne 0x432a6b
test byte [ebp - 5], 0x30
je 0x432a68
or byte [esi], 2
jmp 0x432a6b
or byte [esi], 4
mov eax, dword [ebp - 0xc]
inc eax
cmp byte [eax], 0
mov dword [ebp - 0xc], eax
jne 0x43295d
mov eax, dword [ebp - 0x14]
mov dword [0x4ad2c4], 0x499821
test eax, eax
je 0x432aeb
inc eax
call fcn.0048f810
mov esi, dword [ebp - 0x1c]
mov eax, esp
mov dword [0x4ad2c4], eax
cmp byte [esi], 0
mov edi, eax
je 0x432ae8
mov cl, byte [esi]
movsx eax, cl
sub eax, 0x7b
je 0x432ab7
sub eax, 2
je 0x432ae2
mov byte [edi], cl
inc edi
jmp 0x432ae2
lea ebx, [esi + 1]
push 0x7d
push ebx
call fcn.00486dd1
add esp, 8
test eax, eax
je 0x432ae2
cmp eax, ebx
jne 0x432ad4
cmp byte [eax + 1], 0x7d
jne 0x432ad4
inc eax
add esi, 2
cmp eax, esi
jne 0x432ae0
mov cl, byte [ebx]
mov byte [edi], cl
inc edi
mov esi, eax
inc esi
cmp byte [esi], 0
jne 0x432aa3
mov byte [edi], 0
mov edi, dword [ebp - 0x28]
mov dword [0x4ad2d4], 0
cmp byte [edi], 0
je 0x432d15
cmp dword [0x4ad2d0], 0
jne 0x432b4d
push 0x1000
call fcn.00485f99
add esp, 4
mov dword [0x4ad2d0], eax
test eax, eax
jne 0x432b43
mov ecx, dword [ebp + 8]
push 0x499821
push 0
push str.Out_of_memory.
call fcn.0042de00
lea esp, [ebp - 0x44ec]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov dword [0x4ad2d8], 0x400
mov esi, dword [ebp + 8]
cmp byte [esi + 1], 3
ja 0x432b5d
xor eax, eax
jmp 0x432bda
mov eax, dword [0x4ab1c4]
test eax, eax
je 0x432bc9
mov dl, byte [eax + 0x17]
test dl, dl
jne 0x432b75
mov ecx, dword [eax + 0xc]
mov cl, byte [ecx + 0x17]
jmp 0x432b77
mov cl, dl
cmp cl, 1
jne 0x432bc9
movzx ecx, byte [esi]
lea ebx, [ecx*8]
sub ebx, ecx
test byte [ebx*2 + 0x4a7956], 0x80
jne 0x432bc9
cmp dword [0x4ab3d8], 0
jne 0x432bba
test dl, dl
jne 0x432ba4
mov ecx, dword [eax + 0xc]
jmp 0x432ba6
mov ecx, eax
test byte [ecx + 0x15], 0xa
jne 0x432bba
xor edx, edx
cmp dword [ecx + 0xc], edx
setne dl
mov ecx, edx
test ecx, ecx
je 0x432bc9
cmp eax, dword [0x4aba70]
je 0x432bc9
call fcn.00413af0
jmp 0x432bda
mov eax, dword [0x4ab21c]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x432bd1
sub eax, edx
inc eax
cmp eax, dword [0x4ad2e0]
jbe 0x432c48
mov dword [0x4ad2e0], eax
cmp eax, 0x1000
ja 0x432bf9
mov dword [0x4ad2e0], 0x1000
mov eax, dword [0x4ad2dc]
test eax, eax
je 0x432c0b
push eax
call fcn.00485df8
add esp, 4
mov eax, dword [0x4ad2e0]
push eax
call fcn.00485f99
add esp, 4
mov dword [0x4ad2dc], eax
test eax, eax
jne 0x432c4d
push 0x499821
push eax
push str.Out_of_memory.
mov ecx, esi
mov dword [0x4ad2e0], eax
call fcn.0042de00
lea esp, [ebp - 0x44ec]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov eax, dword [0x4ad2dc]
mov ecx, dword [0x4ad2d0]
mov edx, dword [0x4ad2d4]
mov dword [ecx + edx*4], eax
cmp byte [edi], 0
mov esi, dword [0x4ad2dc]
mov ebx, edi
je 0x432cf8
lea ecx, [ecx]
mov al, byte [ebx]
cmp al, 0x2c
je 0x432c7b
mov byte [esi], al
inc esi
jmp 0x432cee
cmp byte [ebx + 1], 0x2c
jne 0x432c88
mov byte [esi], 0x2c
inc esi
inc ebx
jmp 0x432cee
mov byte [esi], 0
mov ecx, dword [0x4ad2d0]
mov eax, dword [0x4ad2d4]
mov edx, dword [ecx + eax*4]
cmp byte [edx], 0
je 0x432cb6
inc eax
mov dword [0x4ad2d4], eax
inc esi
mov dword [ecx + eax*4], esi
mov byte [esi], 0
mov eax, dword [0x4ad2d4]
mov ecx, dword [0x4ad2d0]
cmp byte [ebx + 1], 0
je 0x432cee
mov edx, dword [0x4ad2d8]
cmp eax, edx
jb 0x432cee
lea eax, [edx*4 + 0x1000]
push eax
push ecx
call fcn.00487387
add esp, 8
test eax, eax
je 0x432b20
add dword [0x4ad2d8], 0x400
mov dword [0x4ad2d0], eax
inc ebx
cmp byte [ebx], 0
jne 0x432c70
mov byte [esi], 0
mov ecx, dword [0x4ad2d0]
mov edx, dword [0x4ad2d4]
mov eax, dword [ecx + edx*4]
cmp byte [eax], 0
je 0x432d15
inc dword [0x4ad2d4]
cmp byte [0x4ab3c9], 0
je 0x432d53
mov ecx, dword [0x4ab270]
push 0xc
push ecx
call dword [sym.imp.USER32.dll_KillTimer]
test eax, eax
je 0x432d38
mov byte [0x4ab3c9], 0
push 0x10
call dword [sym.imp.USER32.dll_GetQueueStatus]
shr eax, 0x10
test al, 0x10
je 0x432d53
push 1
push 0xffffffffffffffff
call fcn.00401350
add esp, 8
or byte [0x4abb7e], 1
xor esi, esi
lea edx, [ebp - 0x44dc]
lea eax, [ebp - 0x2dc]
lea ecx, [ebp - 0x4dc]
mov byte [ebp - 0x44dc], 0
mov dword [0x4ad2ec], edx
mov dword [0x4ad2f0], esi
mov dword [0x4ad2bc], eax
mov dword [0x4ad2c0], ecx
mov dword [0x4ad2b8], 1
mov byte [0x4ab3c4], 1
cmp dword [0x4ab3a0], esi
jne 0x432db7
mov edx, dword [0x4a8a50]
movzx eax, word [edx]
push eax
call fcn.00407fa0
add esp, 4
mov eax, dword [ebp - 0x20]
cmp eax, esi
jle 0x432df1
cmp byte [0x4ab3c9], 0
jne 0x432df1
cmp eax, 0xa
jge 0x432dd1
mov eax, 0xa
mov ecx, dword [0x4ab270]
push 0x403820
push eax
push 0xc
push ecx
call dword [sym.imp.USER32.dll_SetTimer]
test eax, eax
setne dl
mov byte [0x4ab3c9], dl
push 1
push 0x8000012f
call fcn.00401350
mov eax, dword [0x4ad2b8]
add esp, 8
cmp eax, 1
je 0x432df1
add eax, 0xfffffffe
cmp eax, 3
ja case.default.0x432e16
jmp dword [eax*4 + 0x433680]
mov eax, dword [0x4aba70]
push 1
push 0
push 0xffffffffffffffff
push str.Timeout
push eax
call fcn.00475c90
jmp 0x43318c
mov ecx, dword [0x4aba70]
push 1
push 0
push 0xffffffffffffffff
push str.Match
push ecx
call fcn.00475c90
jmp 0x43318c
mov edx, dword [str.EndKey:]
mov eax, dword [0x49ea04]
push 0x78
lea ecx, [ebp - 0xa4]
push esi
push ecx
mov dword [ebp - 0xac], edx
mov dword [ebp - 0xa8], eax
call fcn.0048f2b0
mov al, byte [0x4ad2cc]
add esp, 0xc
test al, al
je 0x432e98
mov byte [ebp - 0xa5], al
mov byte [ebp - 0xa4], 0
jmp 0x432ff6
cmp byte [0x4ad2ce], 0
je 0x432f5e
push 0xff
lea edx, [ebp - 0x1db]
push esi
push edx
mov byte [ebp - 0x1dc], 0
call fcn.0048f2b0
or byte [ebp - 0x1cc], 0x80
add esp, 0xc
call dword [sym.imp.USER32.dll_GetForegroundWindow]
cmp eax, esi
je 0x432f0c
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 0x432f0c
mov eax, dword [ebp - 0xd0]
test eax, eax
je 0x432f0c
push 0
push eax
call ebx
mov esi, eax
push esi
call dword [sym.imp.USER32.dll_GetKeyboardLayout]
xor ecx, ecx
cmp dword [0x4ab400], ecx
push eax
setne cl
lea edx, [ebp - 0xa5]
lea eax, [ebp - 0x1dc]
xor bl, bl
push ecx
movzx ecx, byte [0x4ad2c8]
push edx
push eax
push ecx
call fcn.00412ad0
movzx edx, ax
movzx eax, byte [0x4ad2c8]
add esp, 4
push edx
push eax
call dword [sym.imp.USER32.dll_ToAsciiEx]
mov byte [ebp + eax - 0xa5], bl
jmp 0x432ff6
cmp byte [0x4ad2cd], 0
je 0x432fbd
mov cx, word [0x4ad2ca]
xor eax, eax
cmp word [eax*8 + 0x4a89e4], cx
je 0x432f9e
inc eax
cmp eax, 0xd
jl 0x432f70
movzx eax, cx
push eax
push str.sc_03X
mov esi, 0x79
lea edi, [ebp - 0xa5]
call fcn.00472ee0
add esp, 8
jmp 0x432fd8
mov ecx, dword [eax*8 + 0x4a89e0]
push 0x78
push ecx
lea edx, [ebp - 0xa5]
push edx
call fcn.00488d80
add esp, 0xc
mov byte [ebp - 0x2d], 0
jmp 0x432fd8
mov bl, byte [0x4ad2c8]
push 1
mov eax, 0x79
lea ecx, [ebp - 0xa5]
call fcn.00412330
add esp, 4
mov cl, byte [ebp - 0xa5]
sub cl, 0x61
cmp cl, 0x19
ja 0x432ff6
cmp byte [ebp - 0xa4], 0
jne 0x432ff6
add byte [ebp - 0xa5], 0xe0
mov eax, dword [0x4aba70]
push 1
push 0
push 0xffffffffffffffff
lea edx, [ebp - 0xac]
push edx
push eax
call fcn.00475c90
jmp 0x43318c
mov ecx, dword [0x4aba70]
push 1
push 0
push 0xffffffffffffffff
push 0x49cf84
push ecx
call fcn.00475c90
jmp 0x43318c
mov ecx, dword [0x4aba70]
mov al, byte [ecx + 0x17]
mov dword [ebp - 0xc], ecx
test al, al
jne 0x433058
mov edx, dword [ecx + 0xc]
push 1
push 0
push 0xffffffffffffffff
push str.NewInput
push edx
call fcn.00475c90
jmp 0x43318c
cmp dword [ecx + 8], str.NewInput
lea edx, [ecx + 8]
mov dword [ebp - 0x14], edx
jne 0x43306c
mov edx, dword [ecx + 0xc]
jmp 0x433071
mov edx, 8
mov dword [ebp - 0x1c], edx
lea ebx, [edx + 1]
cmp al, 2
jne 0x4330d9
mov ebx, edx
cmp dword [0x4ad2a8], esi
jne 0x43318c
cmp edx, 0xffffffff
jne 0x433095
mov ebx, 8
jmp 0x433099
test edx, edx
je 0x4330c8
lea edi, [ebx + 1]
mov esi, 0x4ad29c
call fcn.00404350
test eax, eax
je 0x43318c
mov eax, dword [0x4ad2a8]
push ebx
push str.NewInput
push eax
mov esi, eax
call fcn.00488d80
add esp, 0xc
mov byte [esi + ebx], 0
push 1
mov ecx, 0x4ad29c
call fcn.004043c0
jmp 0x43318c
cmp ebx, dword [0x4a78b8]
jbe 0x4330ff
cmp ebx, dword [ecx + 0x10]
jbe 0x4330ff
push 0x499821
push 0x4a0c44
mov ecx, 0x4ad2f8
call fcn.0042e0b0
jmp 0x43318c
cmp ebx, 2
jae 0x433112
push 4
xor al, al
call fcn.00476230
jmp 0x43318c
mov al, byte [ecx + 0x15]
lea edi, [ecx + 0x15]
test al, 2
je 0x43312a
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 0x433165
mov cl, byte [esi + 0x14]
cmp cl, 1
jbe 0x433207
cmp cl, 2
je 0x433241
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 0x433183
push edi
push str.NewInput
push eax
call fcn.004869c0
add esp, 0xc
mov eax, dword [ebx]
mov byte [edi + eax], 0
mov dword [esi + 0xc], edi
cmp byte [0x4ab3c9], 0
mov edi, dword [ebp - 0x10]
mov dword [0x4ad2b8], 0
je 0x4331d7
mov ecx, dword [0x4ab270]
push 0xc
push ecx
call dword [sym.imp.USER32.dll_KillTimer]
test eax, eax
je 0x4331bc
mov byte [0x4ab3c9], 0
push 0x10
call dword [sym.imp.USER32.dll_GetQueueStatus]
shr eax, 0x10
test al, 0x10
je 0x4331d7
push 1
push 0xffffffffffffffff
call fcn.00401350
add esp, 8
mov dl, byte [edi + 0x17]
test dl, dl
jne 0x433354
mov eax, dword [edi + 0xc]
push 1
push 0
push 0xffffffffffffffff
lea edx, [ebp - 0x44dc]
push edx
push eax
call fcn.00475c90
lea esp, [ebp - 0x44ec]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
cmp ebx, 0x40
ja 0x433241
cmp ebx, 4
ja 0x433218
mov esi, 4
jmp 0x433226
mov edx, 8
cmp edx, ebx
sbb esi, esi
and esi, 0x38
add esi, edx
mov eax, esi
call fcn.004703a0
test eax, eax
je 0x43318c
mov ecx, dword [ebp - 0xc]
mov byte [ecx + 0x14], 1
jmp 0x433155
cmp ebx, 0x10
jae 0x433250
mov esi, 0x10
jmp 0x4332cb
cmp ebx, 0x104
jae 0x43325f
mov esi, 0x104
jmp 0x4332cb
cmp ebx, 0x28000
jae 0x43329a
mov dword [ebp + 8], ebx
fild dword [ebp + 8]
test ebx, ebx
jns 0x433277
fadd qword [0x4a1cb8]
fmul qword [0x4a1cc0]
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 0x4332cb
cmp ebx, 0x190000
jae 0x4332aa
lea esi, [ebx + 0x4000]
jmp 0x4332cb
cmp ebx, 0x640000
jae 0x4332c5
mov eax, 0x51eb851f
mul ebx
mov esi, edx
mov edx, dword [ebp + 8]
shr esi, 5
add esi, ebx
jmp 0x4332cb
lea esi, [ebx + 0x10000]
mov eax, dword [0x4a78b8]
cmp esi, eax
jbe 0x4332d6
mov esi, eax
cmp cl, 2
jne 0x43330c
test edx, edx
je 0x43330c
mov edx, dword [ebp - 0x14]
mov eax, dword [edx]
push eax
mov bl, 1
call fcn.00485df8
add esp, 4
test esi, esi
js 0x433310
push esi
call fcn.00485f99
add esp, 4
test eax, eax
je 0x433310
mov ecx, dword [ebp - 0xc]
mov byte [ecx + 0x14], 2
jmp 0x433155
xor bl, bl
jmp 0x4332ef
test bl, bl
je 0x433329
mov edx, dword [ebp - 0xc]
mov eax, dword [ebp - 0x14]
mov dword [edx + 0x10], 0
mov dword [eax], 0x4acb83
jmp 0x433331
mov ecx, dword [ebp - 0x14]
mov edx, dword [ecx]
mov byte [edx], 0
mov eax, dword [ebp - 0xc]
push 0x499821
push str.Out_of_memory.
mov ecx, 0x4ad2f8
mov dword [eax + 0xc], 0
call fcn.0042e0b0
jmp 0x43318c
lea ecx, [ebp - 0x44dc]
cmp dword [edi + 8], ecx
jne 0x433367
mov esi, dword [edi + 0xc]
mov dword [ebp - 0x20], esi
jmp 0x43337e
lea eax, [ebp - 0x44dc]
lea esi, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x433370
sub eax, esi
mov esi, eax
mov dword [ebp - 0x20], eax
lea ebx, [esi + 1]
cmp dl, 2
jne 0x433402
cmp dword [0x4ad2a8], 0
mov ebx, esi
jne 0x4334fb
cmp esi, 0xffffffff
jne 0x4333b2
lea eax, [ebp - 0x44dc]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4333a7
sub eax, edx
mov ebx, eax
test ebx, ebx
je 0x4333e7
lea edi, [ebx + 1]
mov esi, 0x4ad29c
call fcn.00404350
test eax, eax
je 0x4334fb
mov eax, dword [0x4ad2a8]
push ebx
lea edx, [ebp - 0x44dc]
push edx
push eax
mov esi, eax
call fcn.00488d80
add esp, 0xc
mov byte [esi + ebx], 0
push 1
mov ecx, 0x4ad29c
call fcn.004043c0
lea esp, [ebp - 0x44ec]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
cmp ebx, dword [0x4a78b8]
jbe 0x433432
cmp ebx, dword [edi + 0x10]
jbe 0x433432
push 0x499821
push 0x4a0c44
mov ecx, 0x4ad2f8
call fcn.0042e0b0
lea esp, [ebp - 0x44ec]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
cmp ebx, 2
jae 0x433456
push 4
xor al, al
mov ecx, edi
call fcn.00476230
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 0x43346c
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 0x433499
mov cl, byte [edi + 0x14]
cmp cl, 1
jbe 0x4334d1
cmp cl, 2
je 0x433515
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 0x4334b3
push esi
mov edx, ecx
push edx
push eax
call fcn.004869c0
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 0x433515
cmp ebx, 4
ja 0x4334e2
mov esi, 4
jmp 0x4334f0
mov eax, 8
cmp eax, ebx
sbb esi, esi
and esi, 0x38
add esi, eax
mov eax, esi
call fcn.004703a0
test eax, eax
jne 0x43350c
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 0x43348c
cmp ebx, 0x10
jae 0x433524
mov esi, 0x10
jmp 0x43359f
cmp ebx, 0x104
jae 0x433536
mov esi, 0x104
jmp 0x43359f
cmp ebx, 0x28000
jae 0x433571
mov dword [ebp + 8], ebx
fild dword [ebp + 8]
test ebx, ebx
jns 0x43354e
fadd qword [0x4a1cb8]
fmul qword [0x4a1cc0]
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 0x43359f
cmp ebx, 0x190000
jae 0x433581
lea esi, [ebx + 0x4000]
jmp 0x43359f
cmp ebx, 0x640000
jae 0x433599
mov eax, 0x51eb851f
mul ebx
mov esi, edx
shr esi, 5
add esi, ebx
jmp 0x43359f
lea esi, [ebx + 0x10000]
mov eax, dword [0x4a78b8]
cmp esi, eax
jbe 0x4335aa
mov esi, eax
cmp cl, 2
jne 0x4335dd
cmp dword [edi + 0x10], 0
je 0x4335dd
mov ecx, dword [edi + 8]
push ecx
mov bl, 1
call fcn.00485df8
add esp, 4
test esi, esi
js 0x4335e1
push esi
call fcn.00485f99
add esp, 4
test eax, eax
je 0x4335e1
mov byte [edi + 0x14], 2
jmp 0x43348c
xor bl, bl
jmp 0x4335c3
test bl, bl
je 0x4335f5
mov dword [edi + 0x10], 0
mov dword [edi + 8], 0x4acb83
jmp 0x4335fb
mov edx, dword [edi + 8]
mov byte [edx], 0
push 0x499821
push str.Out_of_memory.
mov ecx, 0x4ad2f8
mov dword [edi + 0xc], 0
call fcn.0042e0b0
lea esp, [ebp - 0x44ec]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4