Function at 0x433980
Capabilities:
Access peb ldr_data

Disassembly:
push 0xffffffffffffffff
push 0x4a4ee8
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x34
push ebx
push ebp
push esi
push edi
xor ebx, ebx
mov dword [esp + 0x4c], ebx
mov word [esp + 0x16], bx
mov word [esp + 0x14], bx
mov word [esp + 0x3e], bx
mov word [esp + 0x3c], bx
mov eax, dword [esp + 0x54]
mov edi, dword [esp + 0x3c]
xor ebp, ebp
mov byte [esp + 0x4c], 2
mov ecx, dword [eax + 0xc]
mov dword [esp + 0x24], ebp
movsx edx, word [eax + 0x14]
mov eax, dword [esp + 0x58]
mov dword [esp + 0x18], ecx
mov dword [esp + 0x30], edx
mov dword [esp + 0x28], ebx
mov byte [esp + 0x20], 0x7f
lea esi, [eax + 4]
movsx eax, bp
mov ecx, eax
and ecx, 0x80000003
jns 0x4339fa
dec ecx
or ecx, 0xfffffffc
inc ecx
cdq
and edx, 3
add eax, edx
mov edx, dword [esp + 0x54]
sar eax, 2
mov edx, dword [edx + 0x10]
shl cl, 1
mov al, byte [eax + edx]
shr al, cl
xor cx, cx
and al, 3
mov cl, al
shl ecx, 5
push ecx
lea ecx, [esp + 0x16]
call fcn.0042cf10
mov dl, byte [esp + 0x12]
mov ecx, dword [esp + 0x54]
lea eax, [esp + 0x34]
push ebp
push eax
mov byte [esp + 0x24], dl
call fcn.00427a00
mov edx, dword [esp + 0x30]
mov ecx, dword [eax]
mov dword [esp + 0x14], ecx
lea eax, [edx - 1]
cmp ebp, eax
jge 0x433af8
inc ebp
movsx eax, bp
mov ecx, eax
and ecx, 0x80000003
jns 0x433a64
dec ecx
or ecx, 0xfffffffc
inc ecx
cdq
and edx, 3
add eax, edx
mov edx, dword [esp + 0x54]
sar eax, 2
mov edx, dword [edx + 0x10]
shl cl, 1
mov al, byte [eax + edx]
shr al, cl
xor cx, cx
and al, 3
mov cl, al
shl ecx, 5
push ecx
lea ecx, [esp + 0x17]
call fcn.0042cf10
movsx cx, byte [esp + 0x1c]
movsx ax, byte [esp + 0x13]
sub eax, ecx
cmp ax, 0x40
jle 0x433aaa
sub eax, 0x80
jmp 0x433ab5
cmp ax, 0xffc0
jge 0x433ab5
add eax, 0x80
cmp al, 0xe0
jne 0x433af4
add ecx, 0x70
push ecx
lea ecx, [esp + 0x20]
call fcn.0042cf10
mov ecx, dword [esp + 0x54]
lea edx, [esp + 0x38]
push ebp
push edx
call fcn.00427a00
mov cx, word [eax]
mov dx, word [eax + 2]
add word [esp + 0x14], cx
add word [esp + 0x16], dx
mov ebp, dword [esp + 0x24]
mov dword [esp + 0x2c], 2
jmp 0x433b00
mov ebp, dword [esp + 0x24]
mov dword [esp + 0x2c], 1
test ebx, ebx
jne 0x433bc9
mov al, byte [esp + 0x1c]
mov edi, dword [esp + 0x14]
mov byte [esp + 0x20], al
mov dword [esp + 0x3c], edi
inc ebx
mov ecx, dword [esp + 0x2c]
mov eax, dword [esp + 0x30]
add ebp, ecx
cmp ebp, eax
mov dword [esp + 0x24], ebp
jl 0x4339e8
mov ecx, dword [esp + 0x3e]
mov eax, dword [esp + 0x28]
mov esi, dword [esp + 0x58]
mov dx, word [esp + 0x18]
mov bp, word [esp + 0x1a]
imul edi, ebx
imul ecx, ebx
lea eax, [eax + eax*4]
mov word [esp + 0x3e], cx
mov word [esp + 0x3c], di
lea eax, [esi + eax*4]
mov word [eax], dx
mov word [eax + 2], bp
mov word [eax + 4], di
mov word [eax + 6], cx
add bp, cx
mov byte [eax + 9], bl
lea ecx, [eax - 0x14]
mov byte [eax + 8], 0
mov dword [eax + 0x10], ecx
add dx, di
movsx cx, byte [esp + 0x20]
add ecx, 0x40
mov word [esp + 0x18], dx
movsx ecx, cx
and ecx, 0x8000007f
mov word [esp + 0x1a], bp
mov dword [eax + 0xc], esi
jns 0x433ba3
dec ecx
or ecx, 0xffffff80
inc ecx
test cx, cx
jge 0x433bae
add ecx, 0x80
movsx cx, cl
neg ecx
cmp cx, 0x40
jle 0x433c8d
sub ecx, 0x80
jmp 0x433c99
mov cl, byte [esp + 0x1c]
mov al, byte [esp + 0x20]
cmp al, cl
je 0x433b18
mov eax, dword [esp + 0x3e]
mov cx, word [esp + 0x18]
imul edi, ebx
imul eax, ebx
mov dx, word [esp + 0x1a]
mov word [esi - 4], cx
mov word [esi - 2], dx
add cx, di
add dx, ax
mov word [esp + 0x18], cx
movsx cx, byte [esp + 0x20]
mov word [esi], di
mov word [esp + 0x1a], dx
mov word [esi + 2], ax
lea edx, [esi - 0x18]
mov byte [esi + 5], bl
mov dword [esi + 0xc], edx
lea eax, [esi + 0x10]
mov byte [esi + 4], 0
add ecx, 0x40
mov dword [esi + 8], eax
movsx eax, cx
and eax, 0x8000007f
jns 0x433c37
dec eax
or eax, 0xffffff80
inc eax
test ax, ax
jge 0x433c41
add eax, 0x80
movsx ax, al
neg eax
cmp ax, 0x40
jle 0x433c54
sub eax, 0x80
jmp 0x433c5f
cmp ax, 0xffc0
jge 0x433c5f
add eax, 0x80
mov ecx, dword [esp + 0x28]
mov dl, byte [esp + 0x1c]
mov edi, dword [esp + 0x14]
mov byte [esp + 0x20], dl
sar al, 4
and al, 7
inc ecx
mov byte [esi + 6], al
mov dword [esp + 0x28], ecx
add esi, 0x14
mov dword [esp + 0x3c], edi
mov ebx, 1
jmp 0x433b19
cmp cx, 0xffc0
jge 0x433c99
add ecx, 0x80
sar cl, 4
and cl, 7
mov byte [eax + 0xa], cl
mov dword [esi + 0x10], eax
mov eax, dword [esp + 0x54]
cmp dx, word [eax + 0xc]
jne 0x433cb5
cmp bp, word [eax + 0xe]
je 0x433cd8
push 0xc4
push 0x4b9f60
push 0x4b1640
push 0
push 0x4b9f08
push 0x4cb640
call fcn.00441210
add esp, 0x18
mov ecx, dword [esp + 0x44]
mov eax, esi
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x40
ret