Function at 0x446270
Capabilities:
Resolve function by parsing pe exports

Disassembly:
sub esp, 0x58
push ebx
push ebp
push esi
push edi
push dword [0x4e2f1c]
call fcn.00437ddf
mov ebx, dword [esp + 0x70]
mov esi, dword [eax]
test ebx, ebx
jns 0x446296
mov dword [esp + 0x2c], 0xffffffff
jmp 0x4462df
mov eax, dword [esi + 0x38]
lea edi, [esi + 0x30]
cmp dword [esi + 0x34], eax
jl 0x4462bf
add eax, 0x3e80
mov dword [esi + 0x38], eax
shl eax, 4
push eax
push dword [edi]
push 8
push dword [0x4ddd30]
call dword [sym.imp.KERNEL32.dll_HeapReAlloc]
mov dword [edi], eax
mov eax, dword [esi + 0x34]
mov esi, eax
push ebx
mov dword [esp + 0x30], eax
add esi, esi
call fcn.0044fb50
mov ecx, dword [edi]
mov dword [ecx + esi*8], eax
mov eax, dword [edi]
mov dword [eax + esi*8 + 4], 0
mov ebp, dword [0x4e3710]
mov ebx, dword [esp + 0x6c]
mov byte [ebp], 0
nop dword [eax]
mov al, byte [ebx]
cmp al, 0x20
je 0x4462fa
cmp al, 9
jne 0x4462fd
inc ebx
jmp 0x4462f0
mov esi, ebx
test al, al
je 0x446321
movsx eax, al
push eax
push dword [0x4d9080]
call fcn.0041d450
add esp, 8
test eax, eax
je 0x446321
mov al, byte [ebx + 1]
inc ebx
test al, al
jne 0x446303
mov edi, ebx
mov al, byte [ebx]
cmp al, 0x20
je 0x44632d
cmp al, 9
jne 0x446330
inc ebx
jmp 0x446323
cmp al, 0x3a
jne 0x4463a0
cmp byte [ebx + 1], al
jne 0x4463a0
lea eax, [esp + 0x20]
mov dword [esp + 0x30], esi
push eax
push esi
mov byte [edi], 0
call fcn.00451280
test eax, eax
jne 0x446359
push str.ModuleNotFound
jmp 0x446ff7
add ebx, 2
nop dword [eax]
mov al, byte [ebx]
cmp al, 0x20
je 0x44636a
cmp al, 9
jne 0x44636d
inc ebx
jmp 0x446360
mov esi, ebx
test al, al
je 0x446391
movsx eax, al
push eax
push dword [0x4d9080]
call fcn.0041d450
add esp, 8
test eax, eax
je 0x446391
mov al, byte [ebx + 1]
inc ebx
test al, al
jne 0x446373
mov edi, ebx
mov al, byte [ebx]
cmp al, 0x20
je 0x44639d
cmp al, 9
jne 0x4463a8
inc ebx
jmp 0x446393
mov dword [esp + 0x30], section..rdata
cmp al, 0x2e
jne 0x4463e0
mov al, byte [ebx + 1]
inc ebx
cmp al, 0x20
je 0x4463ac
cmp al, 9
je 0x4463ac
test al, al
je 0x4463e0
nop dword [eax]
movsx eax, al
push eax
push dword [0x4d9080]
call fcn.0041d450
add esp, 8
test eax, eax
je 0x4463e0
mov al, byte [ebx + 1]
inc ebx
test al, al
jne 0x4463c0
nop
mov al, byte [ebx]
mov byte [esp + 0x6c], al
cmp al, 0x20
je 0x4463ee
cmp al, 9
jne 0x4463f1
inc ebx
jmp 0x4463e0
mov ecx, dword [sym.imp.KERNEL32.dll_HeapAlloc]
inc ebx
mov byte [edi], 0
mov dword [esp + 0x38], ecx
test al, al
je 0x446e01
cmp al, 0x28
je 0x44641d
cmp al, 0x5c
je 0x446e01
push str.InvalidName
jmp 0x446ff7
mov edi, dword [esp + 0x30]
lea eax, [esp + 0x1c]
push eax
lea eax, [esp + 0x28]
push eax
push 0
lea eax, [esp + 0x1e]
push eax
lea eax, [esp + 0x28]
push eax
lea eax, [esp + 0x27]
push eax
lea eax, [esp + 0x2c]
push eax
lea eax, [esp + 0x3c]
push eax
push edi
lea eax, [esp + 0x4c]
push eax
push esi
push 1
push dword [esp + 0x5c]
call fcn.00451be0
test eax, eax
je 0x4468c2
mov edx, dword [esp + 0x20]
cmp byte [edx], 0
je 0x4464bb
mov esi, edx
nop dword [eax + eax]
mov al, byte [edx]
inc edx
test al, al
jne 0x446470
sub edx, esi
lea edi, [ebp - 1]
nop dword [eax]
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x446480
mov ecx, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [ebp - 1]
nop dword [eax]
mov al, byte [ecx + 1]
lea ecx, [ecx + 1]
test al, al
jne 0x4464a0
mov ax, word [0x4aa3ac]
mov word [ecx], ax
mov al, byte [0x4aa3ae]
mov byte [ecx + 2], al
test byte [esp + 0x14], 0x80
je 0x4464d8
lea edi, [ebp - 1]
mov al, byte [edi + 1]
lea edi, [edi + 1]
test al, al
jne 0x4464c5
mov ax, word [0x4a9e6c]
mov word [edi], ax
mov edx, dword [esp + 0x28]
mov esi, edx
nop
mov al, byte [edx]
inc edx
test al, al
jne 0x4464e0
sub edx, esi
lea edi, [ebp - 1]
nop dword [eax]
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x4464f0
mov ecx, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea edi, [ebp - 1]
nop dword [eax]
mov al, byte [edi + 1]
lea edi, [edi + 1]
test al, al
jne 0x446510
mov ax, word [0x4af138]
mov edx, 6
mov word [edi], ax
mov edi, dword [esp + 0x74]
mov eax, dword [esp + 0x14]
lea esi, [edi + 1]
test al, 0x40
mov byte [esi], al
movzx eax, byte [esp + 0x13]
lea ecx, [edi + 2]
cmovne eax, edx
mov dword [esp + 0x2c], ecx
mov byte [ecx], al
mov cl, byte [esp + 0x12]
mov eax, dword [esp + 0x18]
mov byte [edi], 3
mov dword [esp + 0x6c], esi
mov dword [edi + 8], eax
mov dword [edi + 0xc], 0
cmp cl, 1
jle 0x446593
movsx eax, cl
shl eax, 2
push eax
push 0
push dword [0x4ddd30]
call dword [esp + 0x44]
mov dword [edi + 0x18], eax
test eax, eax
jne 0x44658f
push str.OutOfMemory
push str.Debugger
jmp 0x446ffc
mov cl, byte [esp + 0x12]
xor edx, edx
mov dword [esp + 0x30], edx
test cl, cl
jle 0x4467ec
lea esi, [edi + 0x18]
mov dword [esp + 0x34], esi
mov edi, esi
nop word [eax + eax]
test edx, edx
je 0x4465d8
lea ecx, [ebp - 1]
mov al, byte [ecx + 1]
lea ecx, [ecx + 1]
test al, al
jne 0x4465b7
mov ax, word [0x4aa668]
mov edi, esi
mov word [ecx], ax
mov al, byte [0x4aa66a]
mov byte [ecx + 2], al
mov cl, byte [esp + 0x12]
movsx eax, cl
dec eax
mov dword [esp + 0x3c], ebx
cmp edx, eax
jne 0x446639
push 0x29
push ebx
call fcn.00447890
mov esi, eax
test esi, esi
je 0x44670f
push 0x2c
push ebx
call fcn.00447890
test eax, eax
je 0x446667
push 0x2c
push ebx
call fcn.00447890
cmp eax, esi
jae 0x446667
cmp byte [esp + 0x12], 1
jle 0x44662a
mov eax, dword [esp + 0x74]
push dword [eax + 0x18]
push 0
push dword [0x4ddd30]
call dword [sym.imp.KERNEL32.dll_HeapFree]
push str.TooFewDimensions
push str.Parser
jmp 0x446ffc
push 0x2c
push ebx
call fcn.00447890
mov esi, eax
test esi, esi
je 0x446722
push 0x2c
push ebx
call fcn.00447890
test eax, eax
je 0x446667
push 0x2c
push ebx
call fcn.00447890
cmp eax, esi
jb 0x44671e
lea ebx, [esi + 1]
mov byte [esi], 0
call fcn.004532b0
mov edi, dword [esp + 0x78]
push eax
push edi
lea eax, [esp + 0x50]
push eax
push 0
push dword [esp + 0x4c]
call fcn.0043d0f0
test eax, eax
je 0x44700d
cmp byte [esp + 0x58], 0
je 0x446797
mov eax, dword [esp + 0x48]
cmp eax, 0x23
jne 0x446748
mov ecx, ebp
lea edx, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4466b0
push dword [esp + 0x50]
sub ecx, edx
push 0x4af214
lea eax, [ecx + ebp]
push eax
call fcn.00426443
mov edi, dword [esp + 0x80]
add esp, 0xc
mov cl, byte [esp + 0x12]
add edi, 0x18
mov eax, dword [esp + 0x50]
mov edx, dword [esp + 0x30]
cmp cl, 1
jne 0x4466ed
mov dword [edi], eax
jmp 0x4466f6
mov ecx, dword [edi]
mov dword [ecx + edx*4], eax
mov cl, byte [esp + 0x12]
inc edx
movsx eax, cl
mov dword [esp + 0x30], edx
cmp edx, eax
jge 0x4467e8
mov esi, dword [esp + 0x34]
jmp 0x4465b0
push str.MissingArrayParen
push str.Parser
jmp 0x446ffc
mov edi, dword [esp + 0x34]
cmp byte [esp + 0x12], 1
jle 0x446739
push dword [edi]
push 0
push dword [0x4ddd30]
call dword [sym.imp.KERNEL32.dll_HeapFree]
push str.TooManyDimensions
push str.Parser
jmp 0x446ffc
mov esi, dword [sym.imp.KERNEL32.dll_HeapFree]
cmp eax, 0x25
jne 0x446761
push dword [esp + 0x50]
push 0
push dword [0x4ddd30]
call esi
cmp byte [esp + 0x12], 1
jle 0x446779
mov eax, dword [esp + 0x74]
push dword [eax + 0x18]
push 0
push dword [0x4ddd30]
call esi
push str.IntegerOnly
push str.External
call fcn.00448ba0
add esp, 8
mov dword [edi], eax
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x58
ret
cmp dword [esp + 0x48], 0x25
mov esi, dword [sym.imp.KERNEL32.dll_HeapFree]
jne 0x4467b2
push dword [esp + 0x50]
push 0
push dword [0x4ddd30]
call esi
cmp byte [esp + 0x12], 1
jle 0x4467ca
mov eax, dword [esp + 0x74]
push dword [eax + 0x18]
push 0
push dword [0x4ddd30]
call esi
push str.LiteralOnly
push str.External
call fcn.00448ba0
add esp, 8
mov dword [edi], eax
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x58
ret
mov esi, dword [esp + 0x6c]
lea edi, [ebp - 1]
nop
mov al, byte [edi + 1]
lea edi, [edi + 1]
test al, al
jne 0x4467f0
mov ax, word [0x4af13c]
mov word [edi], ax
push dword [esp + 0x1c]
mov edi, dword [esp + 0x78]
push dword [esp + 0x28]
mov al, byte [esp + 0x1a]
push dword [esp + 0x1c]
mov byte [edi + 0x20], al
call fcn.00456fe0
mov dword [edi + 0x1c], eax
mov al, byte [ebx]
cmp al, 0x20
je 0x44682c
cmp al, 9
jne 0x44682f
inc ebx
jmp 0x446822
cmp al, 0x5c
jne 0x44689c
lea edi, [ebp - 1]
mov al, byte [edi + 1]
lea edi, [edi + 1]
test al, al
jne 0x446836
mov ax, word [0x4af1f0]
mov word [edi], ax
lea eax, [esp + 0x1c]
push eax
push dword [esp + 0x7c]
lea eax, [esp + 0x2c]
mov dword [esp + 0x20], 0
push eax
lea eax, [esp + 0x24]
push eax
lea eax, [esp + 0x24]
push eax
lea eax, [ebx + 1]
push ebp
push eax
call fcn.00445c20
add esp, 0x1c
test eax, eax
je 0x44700d
mov al, byte [esp + 0x14]
mov ecx, dword [esp + 0x74]
mov byte [esi], al
mov eax, dword [esp + 0x18]
mov dword [ecx + 0xc], eax
mov esi, dword [esp + 0x6c]
mov edi, dword [esp + 0x74]
jmp 0x446f56
test al, al
je 0x44688f
cmp byte [esp + 0x12], 1
jle 0x4468b8
push dword [edi + 0x18]
push 0
push dword [0x4ddd30]
call dword [sym.imp.KERNEL32.dll_HeapFree]
push str.InvalidCharacter
jmp 0x446ff7
lea eax, [esp + 0x1c]
push eax
lea eax, [esp + 0x28]
push eax
lea eax, [esp + 0x20]
push eax
lea eax, [esp + 0x1f]
push eax
lea eax, [esp + 0x24]
push eax
lea eax, [esp + 0x34]
push eax
push edi
lea eax, [esp + 0x44]
push eax
push esi
push dword [esp + 0x50]
call fcn.004526b0
test eax, eax
je 0x446a90
mov edx, dword [esp + 0x20]
cmp byte [edx], 0
je 0x44694b
mov esi, edx
mov al, byte [edx]
inc edx
test al, al
jne 0x446903
sub edx, esi
lea edi, [ebp - 1]
nop
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x446910
mov ecx, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [ebp - 1]
nop dword [eax]
mov al, byte [ecx + 1]
lea ecx, [ecx + 1]
test al, al
jne 0x446930
mov ax, word [0x4aa3ac]
mov word [ecx], ax
mov al, byte [0x4aa3ae]
mov byte [ecx + 2], al
test byte [esp + 0x14], 0x80
je 0x446968
lea edi, [ebp - 1]
mov al, byte [edi + 1]
lea edi, [edi + 1]
test al, al
jne 0x446955
mov ax, word [0x4a9e6c]
mov word [edi], ax
mov edx, dword [esp + 0x28]
mov esi, edx
nop
mov al, byte [edx]
inc edx
test al, al
jne 0x446970
sub edx, esi
lea edi, [ebp - 1]
nop dword [eax]
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x446980
mov ecx, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [ebp - 1]
nop dword [eax]
mov al, byte [ecx + 1]
lea ecx, [ecx + 1]
test al, al
jne 0x4469a0
mov ax, word [0x4a9ea4]
mov edi, 6
mov edx, dword [esp + 0x74]
mov word [ecx], ax
lea esi, [edx + 1]
mov al, byte [0x4a9ea6]
mov byte [ecx + 2], al
lea ecx, [edx + 2]
mov eax, dword [esp + 0x14]
test al, 0x40
mov byte [esi], al
movzx eax, byte [esp + 0x13]
cmovne eax, edi
mov byte [edx], 2
mov byte [ecx], al
mov eax, dword [esp + 0x18]
mov dword [esp + 0x2c], ecx
mov dword [edx + 8], eax
mov dword [edx + 0xc], 0
mov al, byte [ebx]
cmp al, 0x20
je 0x4469fb
cmp al, 9
jne 0x4469fe
inc ebx
jmp 0x4469f1
cmp al, 0x29
je 0x446a0c
push str.InvalidListName
jmp 0x446ff7
mov al, byte [ebx + 1]
inc ebx
cmp al, 0x20
je 0x446a0c
cmp al, 9
je 0x446a0c
cmp al, 0x5c
jne 0x446a82
lea edi, [ebp - 1]
nop
mov al, byte [edi + 1]
lea edi, [edi + 1]
test al, al
jne 0x446a20
mov ax, word [0x4af1f0]
mov word [edi], ax
lea eax, [esp + 0x1c]
push eax
push dword [esp + 0x7c]
lea eax, [esp + 0x2c]
mov dword [esp + 0x20], 0
push eax
lea eax, [esp + 0x24]
push eax
lea eax, [esp + 0x24]
push eax
lea eax, [ebx + 1]
push ebp
push eax
call fcn.00445c20
add esp, 0x1c
test eax, eax
je 0x44700d
mov al, byte [esp + 0x14]
mov ecx, dword [esp + 0x74]
mov byte [esi], al
mov eax, dword [esp + 0x18]
mov dword [ecx + 0xc], eax
mov edi, dword [esp + 0x74]
jmp 0x446f56
test al, al
je 0x446a79
push str.InvalidCharacter
jmp 0x446ff7
lea eax, [esp + 0x1c]
push eax
lea eax, [esp + 0x28]
push eax
lea eax, [esp + 0x20]
push eax
lea eax, [esp + 0x1f]
push eax
lea eax, [esp + 0x24]
push eax
lea eax, [esp + 0x34]
push eax
push edi
lea eax, [esp + 0x44]
push eax
push esi
push dword [esp + 0x50]
call fcn.00452cf0
test eax, eax
je 0x446df7
mov edx, dword [esp + 0x20]
cmp byte [edx], 0
je 0x446b1b
mov esi, edx
mov al, byte [edx]
inc edx
test al, al
jne 0x446ad1
sub edx, esi
lea edi, [ebp - 1]
nop dword [eax]
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x446ae0
mov ecx, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [ebp - 1]
nop dword [eax]
mov al, byte [ecx + 1]
lea ecx, [ecx + 1]
test al, al
jne 0x446b00
mov ax, word [0x4aa3ac]
mov word [ecx], ax
mov al, byte [0x4aa3ae]
mov byte [ecx + 2], al
test byte [esp + 0x14], 0x80
je 0x446b38
lea edi, [ebp - 1]
mov al, byte [edi + 1]
lea edi, [edi + 1]
test al, al
jne 0x446b25
mov ax, word [0x4a9e6c]
mov word [edi], ax
mov edx, dword [esp + 0x28]
mov esi, edx
nop
mov al, byte [edx]
inc edx
test al, al
jne 0x446b40
sub edx, esi
lea edi, [ebp - 1]
nop dword [eax]
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x446b50
mov ecx, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea edi, [ebp - 1]
nop dword [eax]
mov al, byte [edi + 1]
lea edi, [edi + 1]
test al, al
jne 0x446b70
mov ax, word [0x4af138]
mov edx, 6
mov word [edi], ax
mov edi, dword [esp + 0x74]
mov eax, dword [esp + 0x14]
lea ecx, [edi + 1]
mov byte [ecx], al
test al, 0x40
movzx eax, byte [esp + 0x13]
mov dword [esp + 0x6c], ecx
cmovne eax, edx
lea ecx, [edi + 2]
mov byte [edi], 4
mov byte [ecx], al
mov eax, dword [esp + 0x18]
push 0x29
push ebx
mov dword [esp + 0x34], ecx
mov dword [edi + 8], eax
mov dword [edi + 0xc], 0
call fcn.00447890
test eax, eax
jne 0x446bd8
push str.MissingMapParen
push str.Parser
jmp 0x446ffc
lea esi, [eax + 1]
mov byte [eax], 0
call fcn.004532b0
push eax
push dword [esp + 0x7c]
lea eax, [esp + 0x50]
push eax
push 0
push ebx
call fcn.0043d0f0
test eax, eax
je 0x44700d
mov eax, dword [esp + 0x48]
cmp eax, 2
jne 0x446c36
lea ebx, [edi + 0x18]
mov dword [ebx], 0
lea edi, [ebp - 1]
mov al, byte [edi + 1]
lea edi, [edi + 1]
test al, al
jne 0x446c12
mov ax, word [0x4af13c]
mov word [edi], ax
mov al, byte [esi]
cmp al, 0x20
je 0x446c33
cmp al, 9
jne 0x446d40
inc esi
jmp 0x446c25
cmp byte [esp + 0x58], 0
jne 0x446c5e
cmp eax, 0x25
jne 0x446c54
push dword [esp + 0x50]
push 0
push dword [0x4ddd30]
call dword [sym.imp.KERNEL32.dll_HeapFree]
push str.LiteralOnly
jmp 0x446ff7
cmp eax, 0x25
je 0x446c72
push str.MapStringKey
push str.Parser
jmp 0x446ffc
mov eax, dword [esp + 0x50]
lea ebx, [edi + 0x18]
mov dword [edi + 0x18], eax
mov dword [esp + 0x50], 0
test eax, eax
je 0x446c0f
lea edi, [ebp - 1]
nop dword [eax + eax]
mov al, byte [edi + 1]
lea edi, [edi + 1]
test al, al
jne 0x446c90
mov ax, word [0x4af23c]
mov word [edi], ax
cmp dword [0x4cb014], 0
je 0x446cda
mov ecx, ebp
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x446cb1
push 0
push 0
sub ecx, edx
push 0x112a880
lea eax, [ecx + ebp]
push eax
push 0xffffffffffffffff
push dword [ebx]
push 0
push 0xfde9
call dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
jmp 0x446d1d
mov edx, dword [ebx]
mov ecx, edx
lea edi, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x446ce1
sub ecx, edi
mov dword [esp + 0x44], 0x112a880
lea eax, [ecx + 1]
mov ecx, ebp
mov dword [esp + 0x40], eax
lea edi, [ecx + 1]
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x446d00
lea eax, [esp + 0x40]
sub ecx, edi
push eax
push edx
lea eax, [esp + 0x4c]
push eax
lea eax, [ecx + ebp]
push eax
call fcn.004a3560
lea ecx, [ebp - 1]
mov al, byte [ecx + 1]
lea ecx, [ecx + 1]
test al, al
jne 0x446d20
mov ax, word [0x4af240]
mov word [ecx], ax
mov al, byte [0x4af242]
mov byte [ecx + 2], al
jmp 0x446c25
cmp al, 0x5c
jne 0x446dd3
lea edi, [ebp - 1]
nop dword [eax + eax]
mov al, byte [edi + 1]
lea edi, [edi + 1]
test al, al
jne 0x446d50
mov ax, word [0x4af1f0]
mov word [edi], ax
lea eax, [esp + 0x1c]
push eax
push dword [esp + 0x7c]
lea eax, [esp + 0x2c]
mov dword [esp + 0x20], 0
push eax
lea eax, [esp + 0x24]
push eax
lea eax, [esp + 0x24]
push eax
lea eax, [esi + 1]
push ebp
push eax
call fcn.00445c20
add esp, 0x1c
test eax, eax
je 0x446db0
mov esi, dword [esp + 0x6c]
mov ecx, dword [esp + 0x74]
mov edi, ecx
mov al, byte [esp + 0x14]
mov byte [esi], al
mov eax, dword [esp + 0x18]
mov dword [ecx + 0xc], eax
jmp 0x446f56
mov eax, dword [ebx]
test eax, eax
je 0x44700d
push eax
push 0
push dword [0x4ddd30]
call dword [sym.imp.KERNEL32.dll_HeapFree]
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x58
ret
mov ecx, dword [esp + 0x2c]
mov esi, dword [esp + 0x6c]
mov dword [esp + 0x2c], ecx
test al, al
je 0x446a79
mov eax, dword [ebx]
test eax, eax
je 0x4468b8
push eax
jmp 0x4468aa
push str.ArrayListNotFound
jmp 0x446ff7
lea eax, [esp + 0x1c]
push eax
lea eax, [esp + 0x28]
push eax
lea eax, [esp + 0x20]
push eax
lea eax, [esp + 0x1f]
push eax
lea eax, [esp + 0x24]
push eax
lea eax, [esp + 0x34]
push eax
push dword [esp + 0x48]
lea eax, [esp + 0x44]
push eax
push esi
push dword [esp + 0x50]
call fcn.00453740
test eax, eax
je 0x446ff2
mov edx, dword [esp + 0x20]
cmp byte [edx], 0
je 0x446e8b
mov esi, edx
mov al, byte [edx]
inc edx
test al, al
jne 0x446e45
sub edx, esi
lea edi, [ebp - 1]
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x446e51
mov ecx, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [ebp - 1]
nop word [eax + eax]
mov al, byte [ecx + 1]
lea ecx, [ecx + 1]
test al, al
jne 0x446e70
mov ax, word [0x4aa3ac]
mov word [ecx], ax
mov al, byte [0x4aa3ae]
mov byte [ecx + 2], al
test byte [esp + 0x14], 0x80
je 0x446ea8
lea edi, [ebp - 1]
mov al, byte [edi + 1]
lea edi, [edi + 1]
test al, al
jne 0x446e95
mov ax, word [0x4a9e6c]
mov word [edi], ax
mov edx, dword [esp + 0x28]
mov esi, edx
nop
mov al, byte [edx]
inc edx
test al, al
jne 0x446eb0
sub edx, esi
lea edi, [ebp - 1]
nop dword [eax]
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x446ec0
mov ecx, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
cmp byte [esp + 0x6c], 0
rep movsb byte es:[edi], byte [esi]
mov edi, dword [esp + 0x74]
movzx eax, byte [esp + 0x14]
lea esi, [edi + 1]
mov byte [esi], al
lea edx, [edi + 2]
movzx eax, byte [esp + 0x13]
mov byte [edi], 1
mov dword [esp + 0x2c], edx
mov byte [edx], al
jne 0x446f05
mov eax, dword [esp + 0x18]
mov dword [edi + 0xc], eax
jmp 0x446f5a
lea edi, [ebp - 1]
mov al, byte [edi + 1]
lea edi, [edi + 1]
test al, al
jne 0x446f08
mov ax, word [0x4af1f0]
mov word [edi], ax
lea eax, [esp + 0x1c]
push eax
push dword [esp + 0x7c]
lea eax, [esp + 0x2c]
push eax
lea eax, [esp + 0x24]
push eax
lea eax, [esp + 0x24]
push eax
push ebp
push ebx
call fcn.00445c20
add esp, 0x1c
test eax, eax
je 0x44700d
mov al, byte [esp + 0x14]
mov edi, dword [esp + 0x74]
mov byte [esi], al
mov eax, dword [esp + 0x18]
mov dword [edi + 0xc], eax
mov edx, dword [esp + 0x2c]
mov cl, byte [esi]
mov al, cl
and al, 0x3f
cmp al, 7
jne 0x446f72
test cl, cl
js 0x446f81
push str.NoStructureDisplay
jmp 0x446ff7
cmp al, 0xa
jne 0x446f81
test cl, cl
js 0x446f81
mov eax, dword [esp + 0x1c]
mov dword [edi + 0x2c], eax
mov al, byte [edx]
cmp al, 1
je 0x446f9a
test al, al
je 0x446f9a
mov eax, dword [esp + 0x70]
push eax
mov dword [edi + 0x14], eax
call fcn.0044fb50
jmp 0x446fa4
mov dword [edi + 0x14], 0xffffffff
or eax, 0xffffffff
mov ecx, ebp
mov dword [edi + 0x10], eax
lea edx, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x446fb0
sub ecx, edx
lea eax, [ecx + 1]
push eax
push 0
push dword [0x4ddd30]
call dword [esp + 0x44]
mov ecx, eax
mov dword [edi + 4], ecx
test ecx, ecx
je 0x446580
mov al, byte [ebp]
lea ebp, [ebp + 1]
mov byte [ecx], al
lea ecx, [ecx + 1]
test al, al
jne 0x446fd6
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x58
ret
push str.VariableNotFound
push str.External
call fcn.00448ba0
mov ecx, dword [esp + 0x80]
add esp, 8
mov dword [ecx], eax
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x58
ret