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

Disassembly:
push ebp
mov ebp, esp
push esi
push edi
push ebx
sub esp, 0x55c
mov edi, dword [ebp + 0x14]
mov edx, dword [0x4f195c]
xor edx, ebp
mov ecx, dword [edi + 0x118]
mov dword [ebp - 0x10], edx
mov esi, dword [ebp + 0xc]
mov dword [ebp - 0x46c], ecx
mov ecx, dword [edi + 0x74]
test ecx, ecx
je 0x464cb5
xor eax, eax
movzx edx, byte [ecx + eax]
test edx, edx
je 0x46367b
movzx edx, byte [ecx + eax + 1]
add eax, 2
test edx, edx
jne 0x463666
dec eax
movsx ebx, word [edi + 0x176]
cmp ebx, eax
lea edx, [ebp - 0x15c]
ja 0x46368e
mov ebx, eax
push ebx
push ecx
push edx
call fcn.004ad650
add esp, 0xc
movzx edx, byte [edi + 0x196]
lea ebx, [ebp + ebx - 0x15c]
mov byte [ebx], 0
btr edx, 3
jae 0x463785
mov byte [edi + 0x196], dl
cmp dword [0x4f1980], 0
je 0x464cab
mov eax, dword [0x4f19f0]
mov ecx, dword [edi + 0xb0]
add ecx, 0xffffffff
mov edx, dword [edi + 0xb4]
adc edx, 0xffffffff
push edx
push ecx
push str._I64d
push 0x505ec0
call eax
add esp, 0x10
cmp dword [0x4f1980], 0
je 0x464ca1
mov edx, dword [0x4f19f0]
mov dword [ebp - 0x55c], edx
mov dword [ebp - 0x494], 2
mov eax, 0x202
mov dword [ebp - 0x490], 0x505ec0
lea ecx, [ebp - 0x474]
mov edx, dword [edi + 0x4c]
sub edx, dword [edi + 0x58]
mov dword [ecx - 0x18], edx
mov edx, 0x5060c8
call fcn.00466110
cmp dword [ebp - 0x494], 0
jle 0x464c87
cmp dword [0x4f1980], 0
je 0x464c7d
mov ecx, dword [0x4f1a40]
lea edx, [ebp - 0x490]
push edx
push dword [ebp - 0x474]
push 0x505fc0
call ecx
add esp, 0xc
push 0x505fc0
push 0x4caba0
push ebx
call dword [ebp - 0x55c]
add esp, 0xc
test byte [edi + 0x18e], 0x40
je 0x4637af
cmp esi, 0x3f
je 0x4637af
mov edx, dword [edi + 0x90]
test edx, edx
je 0x4637af
mov byte [edx + 0x1e], 0
mov edx, dword [edi + 0x90]
test edx, edx
je 0x4637af
mov byte [edx + 0x1f], 0
lea edx, [esi - 0x67]
mov dword [ebp - 0x554], edx
cmp edx, 1
ja 0x4637c2
mov ebx, dword [edi + 0x7c]
jmp 0x4637c4
xor ebx, ebx
mov edx, dword [ebp + 0x10]
xor eax, eax
mov dword [ebp - 0x24], edx
mov edx, dword [edi + 0x100]
mov dword [ebp - 0x20], edx
mov edx, dword [edi + 0x118]
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x18], edx
mov dword [ebp - 0x14], eax
cmp dword [0x4ef9e4], 2
jl 0x463812
lea edx, [ebp - 0x460]
push edx
call fcn.00439680
add esp, 4
test eax, eax
jne 0x4641d2
mov eax, dword [ebp - 0x460]
lea edx, [ebp - 0x24]
add eax, 0x10
jmp 0x463824
mov dword [ebp - 0x460], 0x4ef940
mov eax, 0x4ef950
lea edx, [ebp - 0x24]
mov dword [ebp - 0x470], esi
mov esi, eax
mov dword [ebp - 0x558], ebx
mov edi, edx
mov ecx, dword [ebp - 0x24]
mov dword [esi], ecx
mov ebx, dword [ebp - 0x20]
mov dword [esi + 4], ebx
mov ecx, dword [ebp - 0x1c]
mov dword [esi + 8], ecx
mov ecx, dword [ebp - 0x18]
mov dword [esi + 0xc], ecx
mov ecx, dword [ebp - 0x14]
mov dword [esi + 0x10], ecx
mov ebx, dword [ebp - 0x460]
push 0x14
push edi
lea esi, [ebx + 0x10]
push esi
call fcn.004a0900
add esp, 0xc
test eax, eax
jne 0x463834
mov dword [ebp - 0x55c], ebx
mov ebx, dword [ebp - 0x558]
mov esi, dword [ebp - 0x470]
mov edi, dword [ebp + 0x14]
test ebx, ebx
je 0x4638e4
mov ecx, ebx
xor eax, eax
movzx edx, byte [ecx + eax]
test edx, edx
je 0x46389c
movzx edx, byte [ecx + eax + 1]
add eax, 2
test edx, edx
jne 0x463887
dec eax
cmp eax, 0x40
mov dword [ebp - 0x470], esi
jb 0x4638ac
mov eax, 0x40
add dword [ebp - 0x55c], 0x24
mov edi, eax
mov esi, dword [ebp - 0x55c]
push edi
push ebx
push esi
call fcn.004a0860
push edi
mov esi, dword [ebp - 0x460]
push ebx
add esi, 0x24
push esi
call fcn.004a0900
add esp, 0x18
test eax, eax
jne 0x4638bb
mov esi, dword [ebp - 0x470]
mov edi, dword [ebp + 0x14]
movsx eax, byte [edi + 0x182]
lea edx, [eax - 1]
cmp edx, 2
jbe 0x463907
lea edx, [eax - 0x18]
cmp edx, 1
jbe 0x463907
add eax, 0xffffffe0
cmp eax, 2
jbe 0x463907
xor eax, eax
jmp 0x46390c
mov eax, 1
movzx edx, byte [edi + 0x190]
test dl, 1
je 0x463b6e
cmp esi, 0x18
je 0x464919
cmp esi, 0x265
je 0x4648ed
test eax, eax
je 0x46393e
cmp esi, 0x1b
je 0x4648d6
cmp esi, 0x10c
je 0x464895
cmp esi, 0x2f6
je 0x464427
mov edx, dword [edi + 0x10c]
mov dword [ebp - 0x550], edx
test edx, edx
je 0x463b5c
test ebx, ebx
je 0x463a64
mov esi, dword [ebp - 0x46c]
mov edx, 0x5060c8
mov dword [ebp - 0x4e0], 3
lea ecx, [ebp - 0x498]
mov dword [ecx - 0x44], ebx
lea eax, [ebp - 0x15c]
mov dword [ecx - 0x3c], eax
mov eax, dword [ebp + 0x10]
mov dword [ecx - 0x40], esi
call fcn.00466110
cmp dword [ebp - 0x4e0], 0
jle 0x4641ec
cmp dword [0x4f1980], 0
je 0x4641e2
mov edx, dword [0x4f1a40]
lea eax, [ebp - 0x4dc]
push eax
push dword [ebp - 0x498]
push 0x505fc0
call edx
add esp, 0xc
mov ecx, 0x505fc0
xor eax, eax
movzx edx, byte [ecx + eax]
test edx, edx
je 0x4639f7
movzx edx, byte [ecx + eax + 1]
add eax, 2
test edx, edx
jne 0x4639e2
dec eax
mov esi, eax
mov eax, dword [edi + 0x10c]
cmp esi, eax
jb 0x463a19
push eax
push 0x505fc0
push dword [edi + 0x98]
call fcn.004a0860
add esp, 0xc
jmp 0x463a46
push esi
push 0x505fc0
push dword [edi + 0x98]
call fcn.004a0860
mov eax, dword [edi + 0x10c]
sub eax, esi
push eax
mov edx, dword [edi + 0x98]
push 0x20
add edx, esi
push edx
call fcn.004a08c0
add esp, 0x18
mov dword [edi + 0x100], 0
mov esi, dword [ebp + 0x10]
cmp dword [ebp + 8], 0
je 0x4641b7
xor eax, eax
jmp 0x463ee6
cmp esi, 0x7f
je 0x46422a
mov esi, dword [ebp - 0x46c]
mov edx, 0x5060c8
mov dword [ebp - 0x510], 2
lea ecx, [ebp - 0x4a4]
mov dword [ecx - 0x68], esi
lea eax, [ebp - 0x15c]
mov dword [ecx - 0x64], eax
mov eax, dword [ebp + 0x10]
call fcn.00466110
cmp dword [ebp - 0x510], 0
jle 0x464210
cmp dword [0x4f1980], 0
je 0x464206
mov edx, dword [0x4f1a40]
lea eax, [ebp - 0x50c]
push eax
push dword [ebp - 0x4a4]
push 0x505fc0
call edx
add esp, 0xc
mov ecx, 0x505fc0
xor eax, eax
movzx edx, byte [ecx + eax]
test edx, edx
je 0x463aef
movzx edx, byte [ecx + eax + 1]
add eax, 2
test edx, edx
jne 0x463ada
dec eax
mov esi, eax
mov eax, dword [edi + 0x10c]
cmp esi, eax
jb 0x463b11
push eax
push 0x505fc0
push dword [edi + 0x98]
call fcn.004a0860
add esp, 0xc
jmp 0x463b3e
push esi
push 0x505fc0
push dword [edi + 0x98]
call fcn.004a0860
mov eax, dword [edi + 0x10c]
sub eax, esi
push eax
mov edx, dword [edi + 0x98]
push 0x20
add edx, esi
push edx
call fcn.004a08c0
add esp, 0x18
mov dword [edi + 0x100], 0
mov esi, dword [ebp + 0x10]
cmp dword [ebp + 8], 0
je 0x4641b7
xor eax, eax
jmp 0x463ee6
mov dword [edi + 0x100], 0
mov esi, dword [ebp + 0x10]
jmp 0x463dbd
test byte [edi + 0x193], 8
je 0x463b80
cmp esi, 0x3f
je 0x464948
test dl, 2
je 0x463ba7
cmp esi, 0x18
je 0x46492f
test eax, eax
je 0x463b9b
cmp esi, 0x1b
je 0x46444e
cmp esi, 0x265
je 0x4648ff
test dl, 4
je 0x463dce
cmp esi, 0x10c
je 0x463bc4
cmp esi, 0x2f6
jne 0x463dce
mov eax, dword [edi + 0x10c]
mov dword [ebp - 0x550], eax
test eax, eax
je 0x463d8b
test ebx, ebx
je 0x463ca5
mov edx, dword [ebp - 0x46c]
mov eax, esi
mov dword [ebp - 0x4f0], edx
lea edx, [ebp - 0x15c]
mov dword [ebp - 0x4ec], edx
mov edx, 0x5060c8
mov dword [ebp - 0x4f8], 3
lea ecx, [ebp - 0x49c]
mov dword [ecx - 0x58], ebx
call fcn.00466110
cmp dword [ebp - 0x4f8], 0
jle 0x46496c
cmp dword [0x4f1980], 0
je 0x464962
mov edx, dword [0x4f1a40]
lea eax, [ebp - 0x4f4]
push eax
push dword [ebp - 0x49c]
push 0x505fc0
call edx
add esp, 0xc
mov ecx, 0x505fc0
xor eax, eax
movzx edx, byte [ecx + eax]
test edx, edx
je 0x463c6a
movzx edx, byte [ecx + eax + 1]
add eax, 2
test edx, edx
jne 0x463c55
dec eax
mov esi, eax
mov eax, dword [edi + 0x10c]
cmp esi, eax
jb 0x463c8f
push eax
push 0x505fc0
push dword [edi + 0x98]
call fcn.004a0860
add esp, 0xc
jmp 0x463d84
push esi
push 0x505fc0
push dword [edi + 0x98]
call fcn.004a0860
jmp 0x463d68
cmp esi, 0x7f
je 0x4649aa
mov edx, dword [ebp - 0x46c]
mov eax, esi
mov dword [ebp - 0x538], edx
lea edx, [ebp - 0x15c]
mov dword [ebp - 0x534], edx
mov edx, 0x5060c8
mov dword [ebp - 0x53c], 2
lea ecx, [ebp - 0x4c8]
call fcn.00466110
cmp dword [ebp - 0x53c], 0
jle 0x464990
cmp dword [0x4f1980], 0
je 0x464986
mov edx, dword [0x4f1a40]
lea eax, [ebp - 0x538]
push eax
push dword [ebp - 0x4c8]
push 0x505fc0
call edx
add esp, 0xc
mov ecx, 0x505fc0
xor eax, eax
movzx edx, byte [ecx + eax]
test edx, edx
je 0x463d35
movzx edx, byte [ecx + eax + 1]
add eax, 2
test edx, edx
jne 0x463d20
dec eax
mov esi, eax
mov eax, dword [edi + 0x10c]
cmp esi, eax
jb 0x463d57
push eax
push 0x505fc0
push dword [edi + 0x98]
call fcn.004a0860
add esp, 0xc
jmp 0x463d84
push esi
push 0x505fc0
push dword [edi + 0x98]
call fcn.004a0860
mov eax, dword [edi + 0x10c]
sub eax, esi
push eax
mov edx, dword [edi + 0x98]
push 0x20
add edx, esi
push edx
call fcn.004a08c0
add esp, 0x18
movzx edx, byte [edi + 0x190]
mov dword [edi + 0x100], 0
test dl, 0x40
je 0x463da8
movzx eax, byte [edi + 0x18c]
not eax
and eax, 1
jmp 0x463daa
xor eax, eax
shl eax, 5
and edx, 0xffffffdf
or edx, eax
mov esi, 0xfffffffe
mov byte [edi + 0x190], dl
cmp dword [ebp + 8], 0
je 0x4641b7
xor eax, eax
jmp 0x463ee6
mov byte [ebp - 0x464], 0xa
cmp dword [0x508060], 0
jne 0x464c73
push 0xfffffffffffffff4
call dword [sym.imp.KERNEL32.dll_GetStdHandle]
xor edx, edx
mov dword [ebp - 0x470], esi
mov esi, edx
mov dword [ebp - 0x558], ebx
mov ebx, eax
mov eax, dword [esi*4 + 0x4c80b0]
cmp eax, dword [edi + 0x118]
jne 0x463e2a
mov dword [ebp - 0x468], edi
mov edx, edi
test byte [edi + 0x18d], 0x20
je 0x463e8f
mov eax, dword [edi + 0x90]
test eax, eax
je 0x463e8f
xor ecx, ecx
jmp 0x463e65
push 0xf
lea ecx, [ebp - 0x4c4]
push ecx
lea ecx, [ebp - 0x468]
push ecx
push eax
call fcn.0045de60
add esp, 0x10
test eax, eax
jne 0x463e8f
mov edx, dword [ebp - 0x468]
test byte [edx + 0x18d], 0x20
je 0x463e81
mov eax, dword [edx + 0x90]
test eax, eax
je 0x463e81
mov ecx, 1
cmp byte [eax + 0x1c], 0
jne 0x463e71
cmp byte [eax + 0x1d], 0
je 0x463e7d
cmp ebx, dword [edx + 0xfc]
je 0x464ba9
test ecx, ecx
je 0x463e8f
push dword [edx + 0x118]
call fcn.0045f1b0
add esp, 4
inc esi
cmp esi, 4
jl 0x463dfc
mov esi, dword [ebp - 0x470]
mov ebx, dword [ebp - 0x558]
mov edx, dword [edi + 0x100]
test edx, edx
jne 0x464c5a
cmp dword [ebp - 0x554], 1
ja 0x463ebf
mov ebx, dword [edi + 0x7c]
mov edx, dword [edi + 0x10c]
mov dword [0x5060e8], edx
mov edx, dword [edi + 0x98]
mov dword [0x5060e4], edx
cmp dword [ebp + 8], 0
je 0x4640db
mov eax, 1
cmp dword [ebp + 8], 1
je 0x4640b9
cmp dword [ebp + 8], 2
jne 0x464076
mov edx, dword [edi + 0x118]
mov dword [ebp - 0x47c], edx
mov edx, dword [edi + 0x78]
mov dword [ebp - 0x480], edx
mov edx, dword [edi + 0x6c]
test edx, edx
je 0x463f2b
push edx
mov dword [ebp - 0x478], eax
call fcn.00460cc0
mov eax, dword [ebp - 0x478]
add esp, 4
mov edx, dword [edi + 0x48]
test edx, edx
je 0x463f47
push edx
mov dword [ebp - 0x478], eax
call fcn.00460cc0
mov eax, dword [ebp - 0x478]
add esp, 4
mov ecx, dword [edi + 0x74]
test ecx, ecx
je 0x463f6e
movsx edx, word [edi + 0x176]
test edx, edx
je 0x463f6e
push ecx
mov dword [ebp - 0x478], eax
call fcn.00460cc0
mov eax, dword [ebp - 0x478]
add esp, 4
mov edx, dword [edi + 0xfc]
test edx, edx
je 0x463f90
cmp edx, 0xffffffff
je 0x463f90
mov dword [ebp - 0x478], eax
push edx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [ebp - 0x478]
mov ecx, dword [edi + 0x38]
lea edx, [edi + 0x20]
mov dword [ebp - 0x4cc], ecx
mov ecx, dword [edi + 0x3c]
mov dword [ebp - 0x484], ecx
movzx ecx, byte [edi + 0x199]
mov dword [ebp - 0x4fc], ecx
mov ecx, dword [edi + 0x30]
mov dword [ebp - 0x500], ecx
test byte [edi + 0x18d], 0x18
je 0x463ff5
push 0x190
push 0
push edx
mov dword [ebp - 0x478], eax
call fcn.004a08c0
mov eax, dword [ebp - 0x478]
add esp, 0xc
movzx edx, byte [edi + 0x18d]
and edx, 0xffffffe7
add edx, 8
mov byte [edi + 0x18d], dl
jmp 0x464011
push 0x190
push 0
push edx
mov dword [ebp - 0x478], eax
call fcn.004a08c0
mov eax, dword [ebp - 0x478]
add esp, 0xc
mov edx, dword [ebp - 0x4cc]
mov dword [edi + 0x38], edx
mov edx, dword [ebp - 0x484]
mov dword [edi + 0x3c], edx
mov dword [ebp - 0x470], esi
movzx edx, byte [edi + 0x199]
mov ecx, dword [ebp - 0x4fc]
and edx, 0xfffffffd
mov esi, dword [ebp - 0x47c]
and ecx, 2
mov dword [edi + 0x118], esi
or edx, ecx
push esi
mov byte [edi + 0x199], dl
mov esi, dword [ebp - 0x480]
mov edx, dword [ebp - 0x500]
mov dword [edi + 0x78], esi
mov dword [edi + 0x30], edx
mov esi, dword [ebp - 0x470]
mov dword [ebp - 0x478], eax
call fcn.0045f1b0
jmp 0x4640ca
cmp dword [ebp + 8], 3
jne 0x464095
push 1
push edi
mov dword [ebp - 0x478], eax
call fcn.0044cbd0
mov eax, dword [ebp - 0x478]
add esp, 8
jmp 0x4640d3
push 0x91b
push str.for_diags_intel.c
push 2
push 8
mov dword [ebp - 0x478], eax
call fcn.00464d00
mov eax, dword [ebp - 0x478]
add esp, 0x10
jmp 0x4640d3
push dword [edi + 0x118]
mov dword [ebp - 0x478], eax
call fcn.0045f1b0
mov eax, dword [ebp - 0x478]
add esp, 4
test eax, eax
je 0x4641b7
test ebx, ebx
je 0x4640fd
lea edx, [ebp - 0x15c]
push edx
push dword [ebp - 0x46c]
push ebx
push 3
push esi
call fcn.00464d00
add esp, 0x14
jmp 0x4641a9
cmp esi, 0x7f
jne 0x464191
cmp dword [0x5060e8], 0
je 0x46412d
push dword [0x5060e4]
push dword [ebp + 0x10]
push 2
push 0x7f
mov dword [0x5060e8], 0
call fcn.00464d00
jmp 0x4641a6
mov edx, 0x5060c8
lea ecx, [ebp - 0x4cc]
mov eax, dword [ebp + 0x10]
mov dword [ecx - 0x34], 0
call fcn.00466110
cmp dword [ebp - 0x500], 0
jle 0x464c3b
cmp dword [0x4f1980], 0
je 0x464c31
mov ecx, dword [0x4f1a40]
lea edx, [ebp - 0x4fc]
push edx
push dword [ebp - 0x4cc]
push 0x505fc0
call ecx
add esp, 0xc
push 0x505fc0
push dword [ebp + 0x10]
push 2
push 0x7f
call fcn.00464d00
jmp 0x4641a6
lea edx, [ebp - 0x15c]
push edx
push dword [ebp - 0x46c]
push 2
push esi
call fcn.00464d00
add esp, 0x10
xor edx, edx
mov dword [0x5060e8], edx
mov dword [0x5060e4], edx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
cmp ecx, dword [0x4f195c]
jne 0x464c55
mov eax, esi
lea esp, [ebp - 0xc]
pop ebx
pop edi
pop esi
pop ebp
ret
push 0
push eax
call fcn.00464d00
add esp, 8
jmp 0x4638e4
call fcn.004a0af0
jmp 0x4639be
push 0x100
push dword [ebp - 0x498]
push 0x505fc0
call fcn.004ad650
jmp 0x4639d8
call fcn.004a0af0
jmp 0x463ab6
push 0x100
push dword [ebp - 0x4a4]
push 0x505fc0
call fcn.004ad650
jmp 0x463ad0
lea esi, [ebp - 0x52c]
mov eax, dword [edi + 0x98]
push esi
mov dword [esi - 0x30], eax
lea eax, [edx + 1]
push 0
push eax
call fcn.00460c10
add esp, 0xc
test eax, eax
je 0x464258
push 0
push 0x29
call fcn.00464d00
add esp, 8
mov eax, 0x7f
mov edx, 0x5060c8
lea ecx, [ebp - 0x528]
call fcn.00466110
mov ecx, dword [ebp - 0x528]
xor eax, eax
movzx edx, byte [ecx + eax]
test edx, edx
je 0x46428a
movzx edx, byte [ecx + eax + 1]
add eax, 2
test edx, edx
jne 0x464275
dec eax
mov dword [ebp - 0x554], eax
cmp dword [0x4f1980], 0
je 0x46441d
mov edx, dword [0x4f19f0]
push dword [ebp + 0x10]
push 0x4cd9b8
lea eax, [ebp - 0x25c]
push eax
call edx
add esp, 0xc
mov edx, dword [ebp - 0x550]
mov dword [ebp - 0x558], edx
test edx, edx
jle 0x4642e8
mov esi, edx
mov ecx, dword [ebp - 0x55c]
movsx edx, byte [esi + ecx - 1]
cmp edx, 0x20
je 0x4642dd
test edx, edx
jne 0x4642e2
dec esi
test esi, esi
jg 0x4642cf
mov dword [ebp - 0x558], esi
mov edx, dword [ebp - 0x554]
neg edx
add edx, dword [ebp - 0x550]
sub edx, eax
add edx, 6
mov dword [ebp - 0x554], edx
js 0x464401
cmp dword [0x4f1980], 0
je 0x4643f7
mov esi, dword [0x4f19f0]
mov edx, dword [ebp - 0x558]
mov eax, dword [ebp - 0x554]
cmp eax, edx
push dword [ebp - 0x55c]
jl 0x464332
mov eax, edx
push eax
push dword [ebp + 0x10]
push dword [ebp - 0x528]
push dword [ebp - 0x52c]
call esi
add esp, 0x14
cmp eax, dword [ebp - 0x550]
jae 0x46436b
mov edx, dword [ebp - 0x52c]
add edx, eax
neg eax
add eax, dword [ebp - 0x550]
push eax
push 0x20
push edx
call fcn.004a08c0
add esp, 0xc
mov eax, dword [ebp - 0x554]
cmp eax, dword [ebp - 0x558]
jge 0x4643bf
mov eax, 0x81
mov edx, 0x5060c8
lea ecx, [ebp - 0x528]
call fcn.00466360
cmp dword [0x4f1980], 0
je 0x4643f0
mov eax, dword [0x4f1988]
push dword [ebp - 0x528]
call eax
add esp, 4
cmp dword [0x4f1980], 0
je 0x4643e9
mov eax, dword [0x4f1988]
push 0x4cd9bc
call eax
add esp, 4
push dword [ebp - 0x550]
push dword [ebp - 0x52c]
push dword [ebp - 0x55c]
call fcn.004a0860
push dword [ebp - 0x52c]
call fcn.00460cc0
add esp, 0x10
jmp 0x463b3e
call fcn.004a0af0
jmp 0x4643b0
call fcn.004a0af0
jmp 0x464397
call fcn.004a0af0
jmp 0x464314
push dword [ebp - 0x550]
push dword [ebp - 0x528]
push dword [ebp - 0x52c]
call fcn.004ad650
jmp 0x464368
call fcn.004a0af0
jmp 0x46429d
test byte [edi + 0x193], 8
je 0x463ba7
test dl, 2
je 0x463ba7
test eax, eax
je 0x463ba7
cmp esi, 0x1b
jne 0x463ba7
mov eax, dword [edi + 0x10c]
mov dword [ebp - 0x548], eax
test eax, eax
je 0x464615
test ebx, ebx
je 0x46452f
mov edx, dword [ebp - 0x46c]
mov eax, esi
mov dword [ebp - 0x51c], edx
lea edx, [ebp - 0x15c]
mov dword [ebp - 0x518], edx
mov edx, 0x5060c8
mov dword [ebp - 0x524], 3
lea ecx, [ebp - 0x4a0]
mov dword [ecx - 0x80], ebx
call fcn.00466110
cmp dword [ebp - 0x524], 0
jle 0x464658
cmp dword [0x4f1980], 0
je 0x46464e
mov edx, dword [0x4f1a40]
lea eax, [ebp - 0x520]
push eax
push dword [ebp - 0x4a0]
push 0x505fc0
call edx
add esp, 0xc
mov ecx, 0x505fc0
xor eax, eax
movzx edx, byte [ecx + eax]
test edx, edx
je 0x4644f4
movzx edx, byte [ecx + eax + 1]
add eax, 2
test edx, edx
jne 0x4644df
dec eax
mov esi, eax
mov eax, dword [edi + 0x10c]
cmp esi, eax
jb 0x464519
push eax
push 0x505fc0
push dword [edi + 0x98]
call fcn.004a0860
add esp, 0xc
jmp 0x46460e
push esi
push 0x505fc0
push dword [edi + 0x98]
call fcn.004a0860
jmp 0x4645f2
cmp esi, 0x7f
je 0x464696
mov edx, dword [ebp - 0x46c]
mov eax, esi
mov dword [ebp - 0x550], edx
lea edx, [ebp - 0x15c]
mov dword [ebp - 0x54c], edx
mov edx, 0x5060c8
mov dword [ebp - 0x554], 2
lea ecx, [ebp - 0x4e4]
call fcn.00466110
cmp dword [ebp - 0x554], 0
jle 0x46467c
cmp dword [0x4f1980], 0
je 0x464672
mov edx, dword [0x4f1a40]
lea eax, [ebp - 0x550]
push eax
push dword [ebp - 0x4e4]
push 0x505fc0
call edx
add esp, 0xc
mov ecx, 0x505fc0
xor eax, eax
movzx edx, byte [ecx + eax]
test edx, edx
je 0x4645bf
movzx edx, byte [ecx + eax + 1]
add eax, 2
test edx, edx
jne 0x4645aa
dec eax
mov esi, eax
mov eax, dword [edi + 0x10c]
cmp esi, eax
jb 0x4645e1
push eax
push 0x505fc0
push dword [edi + 0x98]
call fcn.004a0860
add esp, 0xc
jmp 0x46460e
push esi
push 0x505fc0
push dword [edi + 0x98]
call fcn.004a0860
mov eax, dword [edi + 0x10c]
sub eax, esi
push eax
mov edx, dword [edi + 0x98]
push 0x20
add edx, esi
push edx
call fcn.004a08c0
add esp, 0x18
movzx edx, byte [edi + 0x190]
mov dword [edi + 0x100], 0
test dl, 0x40
jne 0x46462d
test byte [edi + 0x18c], 1
jne 0x464634
mov eax, 1
jmp 0x464636
xor eax, eax
shl eax, 5
and edx, 0xffffffdf
or edx, eax
mov esi, 0xffffffff
mov byte [edi + 0x190], dl
jmp 0x463dbd
call fcn.004a0af0
jmp 0x4644bb
push 0x100
push dword [ebp - 0x4a0]
push 0x505fc0
call fcn.004ad650
jmp 0x4644d5
call fcn.004a0af0
jmp 0x464586
push 0x100
push dword [ebp - 0x4e4]
push 0x505fc0
call fcn.004ad650
jmp 0x4645a0
mov edx, eax
lea esi, [ebp - 0x55c]
mov eax, dword [edi + 0x98]
push esi
mov dword [esi + 8], eax
lea eax, [edx + 1]
push 0
push eax
call fcn.00460c10
add esp, 0xc
test eax, eax
je 0x4646c6
push 0
push 0x29
call fcn.00464d00
add esp, 8
mov eax, 0x7f
mov edx, 0x5060c8
lea ecx, [ebp - 0x558]
call fcn.00466110
mov ecx, dword [ebp - 0x558]
xor eax, eax
movzx edx, byte [ecx + eax]
test edx, edx
je 0x4646f8
movzx edx, byte [ecx + eax + 1]
add eax, 2
test edx, edx
jne 0x4646e3
dec eax
mov dword [ebp - 0x54c], eax
cmp dword [0x4f1980], 0
je 0x46488b
mov edx, dword [0x4f19f0]
push dword [ebp + 0x10]
push 0x4cd9b8
lea eax, [ebp - 0x45c]
push eax
call edx
add esp, 0xc
mov edx, dword [ebp - 0x548]
mov dword [ebp - 0x550], edx
test edx, edx
jle 0x464756
mov esi, edx
mov ecx, dword [ebp - 0x554]
movsx edx, byte [esi + ecx - 1]
cmp edx, 0x20
je 0x46474b
test edx, edx
jne 0x464750
dec esi
test esi, esi
jg 0x46473d
mov dword [ebp - 0x550], esi
mov edx, dword [ebp - 0x54c]
neg edx
add edx, dword [ebp - 0x548]
sub edx, eax
add edx, 6
mov dword [ebp - 0x54c], edx
js 0x46486f
cmp dword [0x4f1980], 0
je 0x464865
mov esi, dword [0x4f19f0]
mov edx, dword [ebp - 0x550]
mov eax, dword [ebp - 0x54c]
cmp eax, edx
push dword [ebp - 0x554]
jl 0x4647a0
mov eax, edx
push eax
push dword [ebp + 0x10]
push dword [ebp - 0x558]
push dword [ebp - 0x55c]
call esi
add esp, 0x14
cmp eax, dword [ebp - 0x548]
jae 0x4647d9
mov edx, dword [ebp - 0x55c]
add edx, eax
neg eax
add eax, dword [ebp - 0x548]
push eax
push 0x20
push edx
call fcn.004a08c0
add esp, 0xc
mov eax, dword [ebp - 0x54c]
cmp eax, dword [ebp - 0x550]
jge 0x46482d
mov eax, 0x81
mov edx, 0x5060c8
lea ecx, [ebp - 0x558]
call fcn.00466360
cmp dword [0x4f1980], 0
je 0x46485e
mov eax, dword [0x4f1988]
push dword [ebp - 0x558]
call eax
add esp, 4
cmp dword [0x4f1980], 0
je 0x464857
mov eax, dword [0x4f1988]
push 0x4cd9bc
call eax
add esp, 4
push dword [ebp - 0x548]
push dword [ebp - 0x55c]
push dword [ebp - 0x554]
call fcn.004a0860
push dword [ebp - 0x55c]
call fcn.00460cc0
add esp, 0x10
jmp 0x46460e
call fcn.004a0af0
jmp 0x46481e
call fcn.004a0af0
jmp 0x464805
call fcn.004a0af0
jmp 0x464782
push dword [ebp - 0x548]
push dword [ebp - 0x558]
push dword [ebp - 0x55c]
call fcn.004ad650
jmp 0x4647d6
call fcn.004a0af0
jmp 0x46470b
test byte [edi + 0x193], 8
je 0x464434
test dl, 2
je 0x463ba7
test eax, eax
je 0x463ba7
cmp esi, 0x1b
jne 0x463ba7
cmp dword [edi + 0x10c], 0
je 0x464615
test ebx, ebx
jne 0x46446a
jmp 0x464538
test byte [edi + 0x193], 8
je 0x4648a2
test dl, 2
jne 0x463b8e
jmp 0x463ba7
test byte [edi + 0x193], 8
je 0x4648df
test dl, 2
je 0x463ba7
cmp dword [edi + 0x10c], 0
je 0x464615
test ebx, ebx
jne 0x46446a
jmp 0x464538
test byte [edi + 0x193], 8
jne 0x463b80
test dl, 2
je 0x463ba7
mov eax, dword [edi + 0x10c]
mov dword [ebp - 0x548], eax
test eax, eax
jne 0x464462
jmp 0x464615
cmp dword [edi + 0x10c], 0
je 0x463b5c
test ebx, ebx
jne 0x463972
jmp 0x463a6d
call fcn.004a0af0
jmp 0x463c31
push 0x100
push dword [ebp - 0x49c]
push 0x505fc0
call fcn.004ad650
jmp 0x463c4b
call fcn.004a0af0
jmp 0x463cfc
push 0x100
push dword [ebp - 0x4c8]
push 0x505fc0
call fcn.004ad650
jmp 0x463d16
mov edx, eax
lea esi, [ebp - 0x544]
mov eax, dword [edi + 0x98]
push esi
mov dword [esi - 0x18], eax
lea eax, [edx + 1]
push 0
push eax
call fcn.00460c10
add esp, 0xc
test eax, eax
je 0x4649da
push 0
push 0x29
call fcn.00464d00
add esp, 8
mov eax, 0x7f
mov edx, 0x5060c8
lea ecx, [ebp - 0x540]
call fcn.00466110
mov ecx, dword [ebp - 0x540]
xor eax, eax
movzx edx, byte [ecx + eax]
test edx, edx
je 0x464a0c
movzx edx, byte [ecx + eax + 1]
add eax, 2
test edx, edx
jne 0x4649f7
dec eax
mov dword [ebp - 0x554], eax
cmp dword [0x4f1980], 0
je 0x464b9f
mov edx, dword [0x4f19f0]
push dword [ebp + 0x10]
push 0x4cd9b8
lea eax, [ebp - 0x35c]
push eax
call edx
add esp, 0xc
mov edx, dword [ebp - 0x550]
mov dword [ebp - 0x558], edx
test edx, edx
jle 0x464a6a
mov esi, edx
mov ecx, dword [ebp - 0x55c]
movsx edx, byte [esi + ecx - 1]
cmp edx, 0x20
je 0x464a5f
test edx, edx
jne 0x464a64
dec esi
test esi, esi
jg 0x464a51
mov dword [ebp - 0x558], esi
mov edx, dword [ebp - 0x554]
neg edx
add edx, dword [ebp - 0x550]
sub edx, eax
add edx, 6
mov dword [ebp - 0x554], edx
js 0x464b83
cmp dword [0x4f1980], 0
je 0x464b79
mov esi, dword [0x4f19f0]
mov edx, dword [ebp - 0x558]
mov eax, dword [ebp - 0x554]
cmp eax, edx
push dword [ebp - 0x55c]
jl 0x464ab4
mov eax, edx
push eax
push dword [ebp + 0x10]
push dword [ebp - 0x540]
push dword [ebp - 0x544]
call esi
add esp, 0x14
cmp eax, dword [ebp - 0x550]
jae 0x464aed
mov edx, dword [ebp - 0x544]
add edx, eax
neg eax
add eax, dword [ebp - 0x550]
push eax
push 0x20
push edx
call fcn.004a08c0
add esp, 0xc
mov eax, dword [ebp - 0x554]
cmp eax, dword [ebp - 0x558]
jge 0x464b41
mov eax, 0x81
mov edx, 0x5060c8
lea ecx, [ebp - 0x540]
call fcn.00466360
cmp dword [0x4f1980], 0
je 0x464b72
mov eax, dword [0x4f1988]
push dword [ebp - 0x540]
call eax
add esp, 4
cmp dword [0x4f1980], 0
je 0x464b6b
mov eax, dword [0x4f1988]
push 0x4cd9bc
call eax
add esp, 4
push dword [ebp - 0x550]
push dword [ebp - 0x544]
push dword [ebp - 0x55c]
call fcn.004a0860
push dword [ebp - 0x544]
call fcn.00460cc0
add esp, 0x10
jmp 0x463d84
call fcn.004a0af0
jmp 0x464b32
call fcn.004a0af0
jmp 0x464b19
call fcn.004a0af0
jmp 0x464a96
push dword [ebp - 0x550]
push dword [ebp - 0x540]
push dword [ebp - 0x544]
call fcn.004ad650
jmp 0x464aea
call fcn.004a0af0
jmp 0x464a1f
push 1
mov dword [ebp - 0x55c], ecx
lea eax, [ebp - 0x464]
push eax
push edx
mov esi, dword [eax - 0xc]
mov ebx, dword [ebp - 0x558]
call fcn.0046b980
add esp, 0xc
cmp eax, 0xffffffff
je 0x464c1d
mov eax, dword [ebp - 0x468]
mov edx, dword [eax + 0x90]
test edx, edx
je 0x464be9
mov byte [edx + 0x1c], 0
mov eax, dword [ebp - 0x468]
mov edx, dword [eax + 0x90]
test edx, edx
je 0x464bf7
mov byte [edx + 0x1d], 0
cmp dword [ebp - 0x55c], 0
je 0x463ea5
mov edx, dword [ebp - 0x468]
push dword [edx + 0x118]
call fcn.0045f1b0
add esp, 4
jmp 0x463ea5
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov edx, eax
mov eax, str.forrtl
call fcn.00467200
jmp 0x464bcf
call fcn.004a0af0
jmp 0x464161
push 0x100
push dword [ebp - 0x4cc]
push 0x505fc0
call fcn.004ad650
jmp 0x46417b
call fcn.004a91cc
mov eax, str.forrtl
call fcn.00467200
mov dword [edi + 0x100], 0
jmp 0x463eb3
call fcn.004a89f0
jmp 0x463dea
call fcn.004a0af0
jmp 0x463754
push 0x100
push dword [ebp - 0x474]
push 0x505fc0
call fcn.004ad650
jmp 0x46376e
call fcn.004a0af0
jmp 0x4636fc
call fcn.004a0af0
jmp 0x4636c7
mov eax, 0x201
mov edx, 0x5060c8
mov ecx, 0x5060cc
call fcn.004665a0
cmp dword [0x4f1980], 0
je 0x464cf1
mov ecx, dword [0x4f19f0]
push dword [0x5060cc]
push str.__s_
lea edx, [ebp - 0x15c]
push edx
call ecx
jmp 0x463782
call fcn.004a0af0
jmp 0x464cd2