Function at 0x446430
Capabilities:
Access peb ldr_data
Resolve function by parsing pe exports

Disassembly:
push 0xffffffffffffffff
push 0x46b4c0
mov eax, dword fs:[0]
push eax
sub esp, 0x88
mov eax, dword [0x481524]
xor eax, esp
mov dword [esp + 0x84], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x481524]
xor eax, esp
push eax
lea eax, [esp + 0x9c]
mov dword fs:[0], eax
mov ebp, dword [esp + 0xac]
mov esi, ecx
push 0xf
mov ebx, 0x108
mov edi, ebp
mov dword [esp + 0x30], ebp
mov dword [esp + 0x20], esi
call fcn.0043f380
mov cl, byte [esi + 0x30]
push 0x100
mov dword [esp + 0x24], eax
add eax, 8
push 0
push eax
mov byte [esp + 0x33], cl
call fcn.004542b0
mov esi, dword [esi + 0xc]
mov edx, dword [esp + 0x28]
add esp, 0xc
cmp esi, dword [edx + 0x10]
jbe 0x4464b9
call fcn.0044afa0
mov eax, dword [esp + 0x1c]
mov ebx, dword [eax + 0x10]
mov edi, dword [eax]
mov dword [esp + 0x28], ebx
cmp dword [eax + 0xc], ebx
jbe 0x4464d0
call fcn.0044afa0
mov eax, dword [esp + 0x1c]
mov ecx, dword [eax]
mov dword [esp + 0x30], ecx
lea ebx, [ebx]
test edi, edi
je 0x4464ea
cmp edi, dword [esp + 0x30]
je 0x4464ef
call fcn.0044afa0
cmp esi, ebx
je 0x446587
xor ebx, ebx
cmp byte [ebp + 0xc], 0
je 0x446514
mov edx, dword [ebp + 4]
mov ecx, dword [edx]
movzx eax, bl
mov dl, byte [ecx + eax + 0x104]
mov byte [esp + 0x1b], dl
jmp 0x446518
mov byte [esp + 0x1b], bl
test edi, edi
jne 0x44657f
call fcn.0044afa0
xor eax, eax
cmp esi, dword [eax + 0x10]
jb 0x44652d
call fcn.0044afa0
cmp byte [ebp + 0xc], 0
mov al, byte [esi]
je 0x446544
mov ecx, dword [ebp + 4]
movzx edx, al
mov eax, dword [ecx]
mov al, byte [eax + edx + 0x104]
cmp byte [esp + 0x1b], al
jne 0x446555
mov eax, dword [esp + 0x20]
add eax, 8
mov byte [eax + ebx], 1
inc ebx
cmp ebx, 0x100
jb 0x4464f9
test edi, edi
jne 0x446583
call fcn.0044afa0
xor eax, eax
cmp esi, dword [eax + 0x10]
jb 0x446573
call fcn.0044afa0
mov ebx, dword [esp + 0x28]
add esi, 2
jmp 0x4464e0
mov eax, dword [edi]
jmp 0x446523
mov eax, dword [edi]
jmp 0x446569
mov eax, dword [esp + 0x1c]
mov esi, dword [eax + 0x24]
cmp esi, dword [eax + 0x28]
jbe 0x446598
call fcn.0044afa0
mov eax, dword [esp + 0x1c]
mov ecx, dword [eax + 0x28]
mov edi, dword [eax + 0x18]
mov dword [esp + 0x30], edi
mov dword [esp + 0x38], ecx
cmp dword [eax + 0x24], ecx
jbe 0x4465b4
call fcn.0044afa0
mov ecx, dword [esp + 0x1c]
mov edx, dword [ecx + 0x18]
mov dword [esp + 0x3c], edx
nop
test edi, edi
je 0x4465ca
cmp edi, dword [esp + 0x3c]
je 0x4465cf
call fcn.0044afa0
cmp esi, dword [esp + 0x38]
je 0x446970
test edi, edi
jne 0x44660b
call fcn.0044afa0
xor eax, eax
cmp esi, dword [eax + 0x10]
jb 0x4465ee
call fcn.0044afa0
cmp byte [ebp + 0xc], 0
mov al, byte [esi]
mov ecx, dword [ebp + 4]
je 0x44660f
mov ecx, dword [ecx]
movzx eax, al
mov cl, byte [eax + ecx + 0x104]
mov byte [esp + 0x1b], cl
jmp 0x446613
mov eax, dword [edi]
jmp 0x4465e4
mov byte [esp + 0x1b], al
test edi, edi
jne 0x4468d2
call fcn.0044afa0
xor eax, eax
cmp esi, dword [eax + 0x10]
jb 0x44662c
call fcn.0044afa0
add esi, 2
test edi, edi
jne 0x4468d9
call fcn.0044afa0
xor eax, eax
cmp esi, dword [eax + 0x10]
jb 0x446648
call fcn.0044afa0
cmp byte [ebp + 0xc], 0
mov bl, byte [esi]
mov eax, dword [ebp + 4]
je 0x44665f
mov eax, dword [eax]
movzx edx, bl
mov bl, byte [edx + eax + 0x104]
test edi, edi
jne 0x4468e0
call fcn.0044afa0
xor eax, eax
cmp esi, dword [eax + 0x10]
jb 0x446678
call fcn.0044afa0
mov eax, dword [ebp]
add esi, 2
test dword [eax + 8], 0x200000
mov dword [esp + 0x34], esi
je 0x4468e7
mov cl, byte [esp + 0x1b]
lea edx, [esp + 0x14]
push edx
lea eax, [esp + 0x48]
mov byte [esp + 0x18], cl
mov ecx, dword [ebp + 4]
push eax
push ecx
lea edx, [esp + 0x21]
mov byte [esp + 0x21], 0
call fcn.0043ce50
mov dword [esp + 0xa4], 0
mov ecx, dword [ebp + 4]
lea edx, [esp + 0x14]
push edx
lea eax, [esp + 0x64]
push eax
push ecx
lea edx, [esp + 0x21]
mov byte [esp + 0x20], bl
call fcn.0043ce50
mov byte [esp + 0xa4], 1
cmp dword [esp + 0x5c], 0x10
mov edx, dword [esp + 0x48]
jae 0x4466f0
lea edx, [esp + 0x48]
mov esi, dword [esp + 0x74]
mov edi, dword [esp + 0x58]
mov eax, esi
cmp esi, edi
jb 0x446700
mov eax, edi
mov ecx, dword [esp + 0x64]
mov ebx, 0x10
cmp dword [esp + 0x78], ebx
jae 0x446713
lea ecx, [esp + 0x64]
push eax
push edx
push ecx
call fcn.00411170
xor ebp, ebp
add esp, 0xc
cmp eax, ebp
jne 0x446735
cmp esi, edi
jb 0x446911
xor eax, eax
cmp esi, edi
setne al
cmp eax, ebp
jl 0x446911
mov dword [esp + 0x28], ebp
mov dl, byte [esp + 0x28]
mov byte [esp + 0x14], dl
mov edx, dword [esp + 0x2c]
lea eax, [esp + 0x14]
push eax
mov eax, dword [edx + 4]
lea ecx, [esp + 0x80]
push ecx
push eax
lea edx, [esp + 0x21]
call fcn.0043ce50
mov byte [esp + 0xa4], 2
cmp dword [esp + 0x5c], 0x10
mov edx, dword [esp + 0x48]
jae 0x44677c
lea edx, [esp + 0x48]
mov edi, dword [esp + 0x90]
mov esi, dword [esp + 0x58]
mov ecx, edi
cmp edi, esi
jb 0x44678f
mov ecx, esi
mov ebx, dword [esp + 0x94]
mov ebp, dword [esp + 0x80]
mov eax, ebp
cmp ebx, 0x10
jae 0x4467ab
lea eax, [esp + 0x80]
push ecx
push edx
push eax
call fcn.00411170
add esp, 0xc
test eax, eax
jne 0x4467c5
cmp edi, esi
jb 0x44681b
cmp edi, esi
setne al
test eax, eax
jl 0x44681b
mov edx, ebp
cmp ebx, 0x10
jae 0x4467d5
lea edx, [esp + 0x80]
mov esi, dword [esp + 0x74]
mov eax, esi
cmp esi, edi
jb 0x4467e1
mov eax, edi
cmp dword [esp + 0x78], 0x10
mov ecx, dword [esp + 0x64]
jae 0x4467f0
lea ecx, [esp + 0x64]
push eax
push edx
push ecx
call fcn.00411170
add esp, 0xc
test eax, eax
jne 0x44680a
cmp esi, edi
jb 0x44681b
cmp esi, edi
setne al
test eax, eax
jl 0x44681b
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x28]
add eax, 8
mov byte [eax + ecx], 1
mov byte [esp + 0xa4], 1
mov edi, 0x10
cmp dword [esp + 0x94], edi
jb 0x446841
mov edx, dword [esp + 0x80]
push edx
call fcn.0044afbb
add esp, 4
mov eax, dword [esp + 0x28]
xor ebx, ebx
inc eax
mov esi, 0xf
mov dword [esp + 0x94], esi
mov dword [esp + 0x90], ebx
mov byte [esp + 0x80], bl
mov dword [esp + 0x28], eax
cmp eax, 0x100
jb 0x44673f
mov byte [esp + 0xa4], bl
cmp dword [esp + 0x78], edi
jb 0x44688b
mov eax, dword [esp + 0x64]
push eax
call fcn.0044afbb
add esp, 4
mov dword [esp + 0x78], esi
mov dword [esp + 0x74], ebx
mov byte [esp + 0x64], bl
mov dword [esp + 0xa4], 0xffffffff
cmp dword [esp + 0x5c], edi
jb 0x4468b5
mov ecx, dword [esp + 0x48]
push ecx
call fcn.0044afbb
add esp, 4
mov edi, dword [esp + 0x30]
mov ebp, dword [esp + 0x2c]
mov dword [esp + 0x5c], esi
mov esi, dword [esp + 0x34]
mov dword [esp + 0x58], ebx
mov byte [esp + 0x48], bl
jmp 0x4465c0
mov eax, dword [edi]
jmp 0x446622
mov eax, dword [edi]
jmp 0x44663e
mov eax, dword [edi]
jmp 0x44666e
mov al, byte [esp + 0x1b]
cmp bl, al
jb 0x446969
mov ecx, dword [esp + 0x20]
movzx eax, al
movzx edx, bl
sub edx, eax
inc edx
push edx
lea edx, [eax + ecx + 8]
push 1
push edx
call fcn.004542b0
add esp, 0xc
jmp 0x4465c0
mov byte [esp + 0xa4], 0
cmp dword [esp + 0x78], ebx
jb 0x44692c
mov eax, dword [esp + 0x64]
push eax
call fcn.0044afbb
add esp, 4
mov esi, 0xf
mov dword [esp + 0x78], esi
mov dword [esp + 0x74], ebp
mov byte [esp + 0x64], 0
mov dword [esp + 0xa4], 0xffffffff
cmp dword [esp + 0x5c], ebx
jb 0x44695c
mov ecx, dword [esp + 0x48]
push ecx
call fcn.0044afbb
add esp, 4
mov dword [esp + 0x5c], esi
mov dword [esp + 0x58], ebp
mov byte [esp + 0x48], 0
xor eax, eax
jmp 0x446d02
mov eax, dword [ebp]
mov eax, dword [eax + 8]
mov edx, dword [esp + 0x1c]
mov ecx, dword [edx + 0x34]
test eax, 0x100000
je 0x44699d
mov eax, dword [ebp + 0x30]
mov edx, eax
and edx, ecx
cmp edx, eax
je 0x44699a
mov eax, dword [ebp + 0x34]
mov edx, eax
and edx, ecx
cmp edx, eax
jne 0x44699d
or ecx, dword [ebp + 0x38]
test ecx, ecx
je 0x4469e7
mov edi, dword [esp + 0x20]
mov esi, ecx
xor eax, eax
and esi, 0x3ff
nop
mov edx, dword [ebp + 4]
test esi, esi
je 0x4469ce
mov edx, dword [edx]
movzx ebx, al
movzx edx, word [edx + ebx*2 + 0x204]
and edx, ecx
test edx, 0x3ff
jne 0x4469da
test ecx, 0x400
je 0x4469df
cmp al, 0x5f
jne 0x4469df
mov byte [edi + eax + 8], 1
inc eax
cmp eax, 0x100
jb 0x4469b0
mov eax, dword [ebp]
test dword [eax + 8], 0x100000
mov edi, dword [esp + 0x1c]
mov ecx, dword [edi + 0x38]
je 0x446a13
mov eax, dword [ebp + 0x30]
mov edx, eax
and edx, ecx
cmp edx, eax
je 0x446a10
mov eax, dword [ebp + 0x34]
mov edx, eax
and edx, ecx
cmp edx, eax
jne 0x446a13
or ecx, dword [ebp + 0x38]
test ecx, ecx
je 0x446a5e
mov esi, ecx
xor eax, eax
and esi, 0x3ff
mov edx, dword [ebp + 4]
test esi, esi
je 0x446a3f
mov edx, dword [edx]
movzx ebx, al
movzx edx, word [edx + ebx*2 + 0x204]
and edx, ecx
test edx, 0x3ff
jne 0x446a56
test ecx, 0x400
je 0x446a4b
cmp al, 0x5f
je 0x446a56
mov edx, dword [esp + 0x20]
add edx, 8
mov byte [edx + eax], 1
inc eax
cmp eax, 0x100
jb 0x446a21
mov esi, dword [edi + 0x4c]
cmp esi, dword [edi + 0x50]
jbe 0x446a6b
call fcn.0044afa0
mov ebx, edi
mov edi, dword [ebx + 0x40]
mov ebp, esi
mov esi, dword [ebx + 0x50]
mov dword [esp + 0x30], edi
mov dword [esp + 0x38], esi
cmp dword [ebx + 0x4c], esi
jbe 0x446a87
call fcn.0044afa0
mov eax, dword [ebx + 0x40]
mov dword [esp + 0x3c], eax
mov edi, edi
xor ebx, ebx
cmp edi, ebx
je 0x446a9c
cmp edi, dword [esp + 0x3c]
je 0x446aa1
call fcn.0044afa0
cmp ebp, esi
je 0x446cd7
mov dword [esp + 0x5c], 0xf
mov dword [esp + 0x58], ebx
mov byte [esp + 0x48], 0
mov dword [esp + 0xa4], 3
cmp edi, ebx
jne 0x446c96
call fcn.0044afa0
xor eax, eax
cmp ebp, dword [eax + 0x10]
jb 0x446ade
call fcn.0044afa0
cmp edi, ebx
jne 0x446c9d
call fcn.0044afa0
xor eax, eax
cmp ebp, dword [eax + 0x10]
jb 0x446af7
call fcn.0044afa0
mov eax, dword [esp + 0x2c]
lea ecx, [esp + 0x60]
push ecx
mov ecx, dword [eax + 4]
push ecx
lea edx, [ebp + 1]
mov ecx, ebp
call fcn.0043cec0
mov byte [esp + 0xa4], 4
push 0xffffffffffffffff
push ebx
push eax
lea ecx, [esp + 0x50]
call fcn.00403750
mov byte [esp + 0xa4], 3
mov esi, 0x10
cmp dword [esp + 0x78], esi
jb 0x446b43
mov edx, dword [esp + 0x64]
push edx
call fcn.0044afbb
add esp, 4
mov edi, 0xf
mov dword [esp + 0x78], edi
mov dword [esp + 0x74], ebx
mov byte [esp + 0x64], 0
cmp dword [esp + 0x58], ebx
je 0x446ca8
nop
mov ecx, dword [esp + 0x2c]
mov edx, dword [ecx + 4]
lea eax, [esp + 0x7c]
push eax
push edx
lea edx, [esp + 0x1d]
lea ecx, [esp + 0x1c]
mov byte [esp + 0x1c], bl
mov byte [esp + 0x1d], 0
call fcn.0043cec0
mov byte [esp + 0xa4], 5
cmp dword [esp + 0x94], 0x10
mov edx, dword [esp + 0x80]
jae 0x446ba3
lea edx, [esp + 0x80]
mov esi, dword [esp + 0x58]
mov edi, dword [esp + 0x90]
mov eax, esi
cmp esi, edi
jb 0x446bb6
mov eax, edi
cmp dword [esp + 0x5c], 0x10
mov ecx, dword [esp + 0x48]
jae 0x446bc5
lea ecx, [esp + 0x48]
push eax
push edx
push ecx
call fcn.00411170
add esp, 0xc
test eax, eax
jne 0x446bec
cmp esi, edi
jb 0x446bec
cmp esi, edi
setne al
test eax, eax
jne 0x446bec
mov eax, dword [esp + 0x20]
add eax, 8
mov byte [eax + ebx], 1
mov byte [esp + 0xa4], 3
cmp dword [esp + 0x94], 0x10
jb 0x446c0e
mov eax, dword [esp + 0x80]
push eax
call fcn.0044afbb
add esp, 4
inc ebx
mov dword [esp + 0x94], 0xf
mov dword [esp + 0x90], 0
mov byte [esp + 0x80], 0
cmp ebx, 0x100
jb 0x446b60
mov eax, dword [esp + 0x30]
test eax, eax
jne 0x446ca4
call fcn.0044afa0
xor eax, eax
cmp ebp, dword [eax + 0x10]
jb 0x446c52
call fcn.0044afa0
add ebp, 2
mov dword [esp + 0xa4], 0xffffffff
cmp dword [esp + 0x5c], 0x10
jb 0x446c74
mov ecx, dword [esp + 0x48]
push ecx
call fcn.0044afbb
add esp, 4
mov esi, dword [esp + 0x38]
mov edi, dword [esp + 0x30]
mov dword [esp + 0x5c], 0xf
mov dword [esp + 0x58], 0
mov byte [esp + 0x48], 0
jmp 0x446a90
mov eax, dword [edi]
jmp 0x446ad4
mov eax, dword [edi]
jmp 0x446aed
mov eax, dword [eax]
jmp 0x446c48
mov dword [esp + 0xa4], 0xffffffff
cmp dword [esp + 0x5c], esi
jb 0x446cc6
mov edx, dword [esp + 0x48]
push edx
call fcn.0044afbb
add esp, 4
mov dword [esp + 0x5c], edi
mov dword [esp + 0x58], ebx
mov byte [esp + 0x48], 0
xor eax, eax
jmp 0x446d02
cmp byte [esp + 0x27], 0
je 0x446cfe
mov eax, dword [esp + 0x20]
add eax, 8
mov ecx, 0x100
lea ebx, [ebx]
cmp byte [eax], 0
sete dl
mov byte [eax], dl
inc eax
sub ecx, 1
jne 0x446cf0
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x9c]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x84]
xor ecx, esp
call fcn.0044aab8
add esp, 0x94
ret 4