Function at 0x594b0c
Capabilities:
Inspect section memory permissions

Disassembly:
mov edx, dword [esp + 4]
test edx, edx
jne 0x594a6b
xor eax, eax
ret
push ebx
push edi
mov edi, dword [esp + 0x10]
mov ebx, edx
xor ebx, edi
sar ebx, 0x1f
test edx, edx
jns 0x594a7e
neg edx
test edi, edi
jns 0x594a84
neg edi
test edx, edx
je 0x594a94
bsr eax, edx
mov dword [esp + 0xc], eax
xor eax, 0x1f
jmp 0x594a99
mov eax, 0x20
push ebp
lea ebp, [eax - 1]
test edi, edi
je 0x594aad
bsr eax, edi
mov dword [esp + 0x10], eax
xor eax, 0x1f
jmp 0x594ab2
mov eax, 0x20
lea ecx, [eax - 1]
mov eax, ecx
sub eax, ebp
add eax, dword [esp + 0x18]
jns 0x594ac5
pop ebp
pop edi
xor eax, eax
pop ebx
ret
cmp eax, 0x1f
jle 0x594ad7
mov eax, ebx
pop ebp
xor eax, 0x7fffffff
pop edi
sub eax, ebx
pop ebx
ret
shl edi, cl
mov ecx, ebp
push esi
shl edx, cl
xor esi, esi
sub edx, edi
js 0x594aeb
mov esi, 1
jmp 0x594aed
add edx, edi
test eax, eax
jle 0x594ce4
mov ecx, eax
add eax, 0xfffffffe
shl esi, cl
cmp eax, 0x1d
ja case.default.0x594b05
jmp dword [eax*4 + 0x594cfc]
add edx, edx
sub edx, edi
js 0x594b1a
or esi, 0x40000000
jmp case.0x594b05.30
add edx, edi
add edx, edx
sub edx, edi
js 0x594b2a
or esi, 0x20000000
jmp case.0x594b05.29
add edx, edi
add edx, edx
sub edx, edi
js 0x594b3a
or esi, 0x10000000
jmp case.0x594b05.28
add edx, edi
add edx, edx
sub edx, edi
js 0x594b4a
or esi, 0x8000000
jmp case.0x594b05.27
add edx, edi
add edx, edx
sub edx, edi
js 0x594b5a
or esi, 0x4000000
jmp case.0x594b05.26
add edx, edi
add edx, edx
sub edx, edi
js 0x594b6a
or esi, 0x2000000
jmp case.0x594b05.25
add edx, edi
add edx, edx
sub edx, edi
js 0x594b7a
or esi, 0x1000000
jmp case.0x594b05.24
add edx, edi
add edx, edx
sub edx, edi
js 0x594b8a
or esi, 0x800000
jmp case.0x594b05.23
add edx, edi
add edx, edx
sub edx, edi
js 0x594b9a
or esi, 0x400000
jmp case.0x594b05.22
add edx, edi
add edx, edx
sub edx, edi
js 0x594baa
or esi, 0x200000
jmp case.0x594b05.21
add edx, edi
add edx, edx
sub edx, edi
js 0x594bba
or esi, 0x100000
jmp case.0x594b05.20
add edx, edi
add edx, edx
sub edx, edi
js 0x594bca
or esi, 0x80000
jmp case.0x594b05.19
add edx, edi
add edx, edx
sub edx, edi
js 0x594bda
or esi, 0x40000
jmp case.0x594b05.18
add edx, edi
add edx, edx
sub edx, edi
js 0x594bea
or esi, 0x20000
jmp case.0x594b05.17
add edx, edi
add edx, edx
sub edx, edi
js 0x594bfa
or esi, 0x10000
jmp case.0x594b05.16
add edx, edi
add edx, edx
sub edx, edi
js 0x594c0a
or esi, 0x8000
jmp case.0x594b05.15
add edx, edi
add edx, edx
sub edx, edi
js 0x594c1a
or esi, 0x4000
jmp case.0x594b05.14
add edx, edi
add edx, edx
sub edx, edi
js 0x594c2a
or esi, 0x2000
jmp case.0x594b05.13
add edx, edi
add edx, edx
sub edx, edi
js 0x594c3a
or esi, 0x1000
jmp case.0x594b05.12
add edx, edi
add edx, edx
sub edx, edi
js 0x594c4a
or esi, 0x800
jmp case.0x594b05.11
add edx, edi
add edx, edx
sub edx, edi
js 0x594c5a
or esi, 0x400
jmp case.0x594b05.10
add edx, edi
add edx, edx
sub edx, edi
js 0x594c6a
or esi, 0x200
jmp case.0x594b05.9
add edx, edi
add edx, edx
sub edx, edi
js 0x594c7a
or esi, 0x100
jmp case.0x594b05.8
add edx, edi
add edx, edx
sub edx, edi
js 0x594c8a
or esi, 0x80
jmp case.0x594b05.7
add edx, edi
add edx, edx
sub edx, edi
js 0x594c97
or esi, 0x40
jmp case.0x594b05.6
add edx, edi
add edx, edx
sub edx, edi
js 0x594ca4
or esi, 0x20
jmp case.0x594b05.5
add edx, edi
add edx, edx
sub edx, edi
js 0x594cb1
or esi, 0x10
jmp case.0x594b05.4
add edx, edi
add edx, edx
sub edx, edi
js 0x594cbe
or esi, 8
jmp case.0x594b05.3
add edx, edi
add edx, edx
sub edx, edi
js 0x594ccb
or esi, 4
jmp case.0x594b05.2
add edx, edi
add edx, edx
sub edx, edi
js 0x594cd8
or esi, 2
jmp case.default.0x594b05
add edx, edi
lea eax, [edx + edx]
sub eax, edi
js 0x594ce4
or esi, 1
test esi, esi
mov eax, SysReAllocString
cmovs esi, eax
xor esi, ebx
sub esi, ebx
mov eax, esi
pop esi
pop ebp
pop edi
pop ebx
ret