Function at 0x46f7e0
Capabilities:
Check os version
Resolve function by parsing pe exports

Disassembly:
push ebx
push esi
push edi
push ebp
sub esp, 0xb8
mov dword [esp + 0x28], ecx
mov eax, dword [esp + 0xd0]
mov eax, dword [eax + 0x3c]
mov dword [esp + 0x70], eax
test eax, eax
je 0x46f807
mov ecx, eax
call fcn.0040b9a0
mov eax, dword [esp + 0xd0]
mov eax, dword [eax + 0x6c]
push eax
mov eax, dword [esp + 0xd4]
mov bl, byte [eax + 0x1b]
push ebx
mov al, byte [eax + 0x1a]
push eax
mov eax, dword [esp + 0xdc]
mov dl, byte [eax + 0x19]
push edx
mov eax, dword [esp + 0xe4]
push eax
mov eax, dword [esp + 0xe4]
push dword [eax + 0x28]
push dword [eax + 0x24]
lea eax, [esp + 0x8c]
push eax
mov ecx, dword [esp + 0x48]
call fcn.0046f770
cmp dword [esp + 0x70], 0
je 0x46f862
mov ecx, dword [esp + 0x70]
call fcn.0040b9e0
mov eax, dword [esp + 0x28]
mov dword [eax], 0x4cbe78
mov dword [esp + 0x3c], 0
mov dword [esp + 0x40], 0
mov dword [esp + 0x48], 0
mov dword [esp + 0x74], 0
push 0x4cc1dd
call fcn.0040ca30
pop ecx
push eax
push 0x4cc1dd
lea ecx, [esp + 0x7c]
call fcn.0040bb00
cmp dword [esp + 0x74], 0
je 0x46f8b9
mov ebp, dword [esp + 0x74]
mov eax, dword [0x4bf2dc]
mov dword [ebp + 0x10], eax
push 1
lea eax, [esp + 0x78]
push eax
mov ecx, dword [esp + 0x30]
call fcn.0040e220
cmp dword [esp + 0x74], 0
je 0x46f8d9
mov ecx, dword [esp + 0x74]
call fcn.0040b9e0
mov ebx, dword [esp + 0x28]
mov eax, dword [0x4f5ec0]
mov dword [ebx + 0xf4], eax
mov eax, dword [esp + 0x28]
mov dword [0x4f5ec0], eax
mov edi, eax
mov eax, dword [esp + 0xd0]
mov dword [edi + 0xf0], eax
mov edx, dword [esp + 0x28]
mov eax, dword [edx + 0xf0]
inc dword [eax]
mov ecx, dword [esp + 0x28]
mov eax, dword [esp + 0xd0]
mov dword [eax + 0x1c], ecx
cmp byte [eax + 0x18], 0
jne 0x46f929
mov ecx, dword [esp + 0x28]
call fcn.0040de90
lea eax, [esp + 0x34]
push eax
mov ecx, dword [esp + 0xd0]
call fcn.00407ba0
mov dword [esp + 0x24], 0
cmp dword [esp + 0x34], 0
jle 0x46ff57
lea eax, [eax]
lea eax, [esp + 0x38]
push eax
mov ecx, dword [esp + 0xd0]
call fcn.00407ba0
mov eax, dword [esp + 0x38]
push eax
call fcn.00496970
pop ecx
mov ebp, eax
mov ebx, dword [esp + 0x28]
mov eax, dword [ebx + 0xf0]
mov dword [ebp + 0x10], eax
push 0x4f1d68
push ebp
call fcn.0046f740
pop ecx
pop ecx
test al, al
je 0x46f9ba
mov byte [ebp + 0x30], 1
mov byte [ebp + 0x31], 0
mov byte [ebp + 0x2f], 0
mov dword [ebp + 0x1c], 0
mov dword [ebp + 0x18], 0
mov eax, dword [esp + 0x28]
mov dword [ebp + 0x40], eax
mov edi, dword [esp + 0x28]
mov eax, dword [edi + 0xf0]
mov dword [ebp + 0x44], eax
push 0x14
call fcn.004496d0
pop ecx
mov dword [esp + 0xc], eax
test eax, eax
je 0x46f9d5
mov ecx, eax
call fcn.0048a4f0
mov dword [esp + 0xc], eax
mov edx, dword [ebp + 4]
mov eax, dword [esp + 0xc]
mov dword [eax + 0xc], edx
mov dword [esp + 4], 0
lea eax, [esp + 0x30]
push eax
mov ecx, dword [esp + 0xd0]
call fcn.00407ba0
mov dword [esp + 0x2c], 0
cmp dword [esp + 0x30], 0
jle 0x46fc76
mov eax, eax
lea eax, [eax]
lea eax, [esp + 0x3c]
push eax
mov ecx, dword [esp + 0xd0]
call fcn.00407c50
lea eax, [esp + 0x40]
push eax
mov ecx, dword [esp + 0xd0]
call fcn.00407c50
push 0x4cc1ef
lea ecx, [esp + 0x40]
call fcn.0040bbb0
push eax
call fcn.0040ca90
pop ecx
pop ecx
test eax, eax
jne 0x46fa50
mov al, 1
jmp 0x46fa52
xor al, al
test al, al
je 0x46fa6a
lea ecx, [esp + 0x40]
call fcn.0040bb90
push eax
call fcn.0040cc10
pop ecx
mov dword [esp + 0x1c], eax
push 0x4cc1f5
lea ecx, [esp + 0x40]
call fcn.0040bbb0
push eax
call fcn.0040ca90
pop ecx
pop ecx
test eax, eax
jne 0x46fa88
mov al, 1
jmp 0x46fa8a
xor al, al
test al, al
je 0x46fa9c
lea eax, [esp + 0x40]
push eax
lea ecx, [esp + 0x4c]
call fcn.0040bbd0
push 0xc
call fcn.004496d0
pop ecx
mov ebx, eax
test ebx, ebx
je 0x46fab8
mov dword [ebx + 4], 0
mov dword [ebx + 8], 0
lea eax, [esp + 0x3c]
push eax
lea ecx, [ebx + 4]
call fcn.0040bbd0
lea eax, [esp + 0x40]
push eax
lea ecx, [ebx + 8]
call fcn.0040bbd0
mov dword [ebx], 0
cmp dword [esp + 4], 0
je 0x46fae7
mov eax, dword [esp + 4]
mov dword [eax], ebx
jmp 0x46faee
mov eax, dword [esp + 0xc]
mov dword [eax + 0x10], ebx
mov dword [esp + 4], ebx
mov ebx, dword [ebp + 4]
test ebx, ebx
je 0x46fb67
lea eax, [eax]
mov esi, dword [ebx + 0x50]
test esi, esi
je 0x46fb5c
cmp dword [esp + 0x3c], 0
je 0x46fb17
mov eax, dword [esp + 0x3c]
mov edx, dword [eax + 0xc]
jmp 0x46fb19
xor edx, edx
mov eax, dword [esi + 8]
test eax, eax
je 0x46fb25
mov edi, dword [eax + 0xc]
jmp 0x46fb27
xor edi, edi
push edx
lea ecx, [esp + 0x40]
call fcn.0040bbb0
push eax
push edi
lea ecx, [esi + 8]
call fcn.0040bbb0
push eax
call fcn.0040cb30
add esp, 0x10
test eax, eax
jne 0x46fb50
mov al, 1
jmp 0x46fb52
xor al, al
test al, al
jne 0x46fb5c
mov esi, dword [esi]
test esi, esi
jne 0x46fb07
test esi, esi
jne 0x46fb67
mov ebx, dword [ebx + 0x18]
test ebx, ebx
jne 0x46fb00
test esi, esi
je 0x46fc62
mov edi, dword [esi + 0xc]
mov eax, edi
mov ecx, dword [eax]
cmp ecx, 3
jne 0x46fbd0
mov eax, dword [esp + 0x40]
mov dword [esp + 0x78], eax
test eax, eax
je 0x46fb8e
mov ecx, eax
call fcn.0040b9a0
lea ecx, [esp + 0x4c]
push ecx
lea eax, [esp + 0x7c]
push eax
call dword [0x4d4228]
pop ecx
pop ecx
cmp dword [esp + 0x78], 0
je 0x46fbb0
mov ecx, dword [esp + 0x78]
call fcn.0040b9e0
mov eax, dword [esp + 0x4c]
push eax
call fcn.00496aa0
pop ecx
push eax
mov eax, dword [esi + 0x20]
push eax
push ebp
call dword [esi + 0x1c]
add esp, 0xc
jmp 0x46fc62
test ecx, ecx
jne 0x46fc62
test esi, esi
je 0x46fc62
cmp dword [esi + 0x1c], 0
je 0x46fc62
test edi, edi
je 0x46fc62
cmp dword [edi + 0xc], 0
je 0x46fc62
mov eax, dword [esp + 0x40]
mov dword [esp + 0x7c], eax
test eax, eax
je 0x46fc03
mov ecx, eax
call fcn.0040b9a0
lea edx, [esp + 0x44]
push edx
lea eax, [esp + 0x80]
push eax
mov edi, dword [esi + 0xc]
call dword [edi + 0xc]
pop ecx
pop ecx
mov bl, al
cmp dword [esp + 0x7c], 0
je 0x46fc2a
mov ecx, dword [esp + 0x7c]
call fcn.0040b9e0
test bl, bl
je 0x46fc62
cmp dword [esi + 0xc], 0x4d4234
jne 0x46fc40
mov ecx, dword [esp + 0x44]
push ecx
jmp 0x46fc45
mov edi, dword [esp + 0x44]
push edi
mov eax, dword [esi + 0x20]
push eax
push ebp
call dword [esi + 0x1c]
add esp, 0xc
mov eax, dword [esi + 0xc]
mov ebx, dword [eax + 0x10]
test ebx, ebx
je 0x46fc62
mov eax, dword [esp + 0x44]
push eax
call ebx
pop ecx
inc dword [esp + 0x2c]
mov edx, dword [esp + 0x2c]
mov eax, dword [esp + 0x30]
cmp edx, eax
jl 0x46fa10
mov ecx, dword [esp + 0x28]
mov eax, dword [ecx + 0xf0]
mov ebx, dword [eax + 0x74]
test ebx, ebx
je 0x46fcdc
cmp dword [esp + 0x48], 0
je 0x46fc97
mov eax, dword [esp + 0x48]
mov edx, dword [eax + 0xc]
jmp 0x46fc99
xor edx, edx
mov eax, dword [ebx + 4]
test eax, eax
je 0x46fca5
mov edi, dword [eax + 0xc]
jmp 0x46fca7
xor edi, edi
push edx
lea ecx, [esp + 0x4c]
call fcn.0040bbb0
push eax
push edi
lea ecx, [ebx + 4]
call fcn.0040bbb0
push eax
call fcn.0040cb30
add esp, 0x10
test eax, eax
jne 0x46fcd0
mov al, 1
jmp 0x46fcd2
xor al, al
test al, al
jne 0x46fcdc
mov ebx, dword [ebx]
test ebx, ebx
jne 0x46fc87
test ebx, ebx
je 0x46fd00
cmp dword [esp + 0xc], 0
je 0x46fd40
mov ecx, dword [esp + 0xc]
call fcn.0048a540
push dword [esp + 0xc]
call fcn.004496f0
pop ecx
jmp 0x46fd40
lea eax, [esp + 0x48]
push eax
mov ecx, dword [esp + 0x10]
add ecx, 4
call fcn.0040bbd0
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0xc]
mov dword [eax + 8], ecx
mov edi, dword [esp + 0x28]
mov eax, dword [edi + 0xf0]
mov ebx, dword [eax + 0x74]
mov eax, dword [esp + 0xc]
mov dword [eax], ebx
mov eax, dword [esp + 0x28]
mov edx, dword [eax + 0xf0]
mov eax, dword [esp + 0xc]
mov dword [edx + 0x74], eax
push 0x4f1d68
push ebp
call fcn.0046f740
pop ecx
pop ecx
test al, al
je 0x46fddf
mov ecx, dword [esp + 0x28]
mov edi, dword [ecx + 0xf0]
mov eax, dword [edi + 0x70]
push eax
call fcn.00417860
pop ecx
mov ebx, eax
push ebx
call fcn.00417880
pop ecx
test al, al
je 0x46fdd8
push ebx
call fcn.004178a0
pop ecx
mov dword [esp + 0x10], eax
push 0x4f4d18
push eax
call fcn.0046f740
pop ecx
pop ecx
test al, al
je 0x46fdcd
mov eax, dword [esp + 0x10]
mov dx, word [eax + 0x38]
mov cx, word [ebp + 0x38]
cmp dx, cx
jg 0x46fdcd
mov di, word [eax + 0x3c]
mov dx, word [ebp + 0x3c]
cmp di, dx
jl 0x46fdcd
mov cx, word [eax + 0x36]
mov di, word [ebp + 0x36]
cmp cx, di
jg 0x46fdcd
mov dx, word [eax + 0x3a]
mov cx, word [ebp + 0x3a]
cmp dx, cx
jl 0x46fdcd
mov dword [ebp + 0x58], eax
push ebx
call fcn.00417880
pop ecx
test al, al
jne 0x46fd76
push ebx
call fcn.004178d0
pop ecx
mov edi, dword [esp + 0x1c]
mov dword [ebp + 0x14], edi
cmp dword [esp + 0x1c], 0x80000000
jne 0x46fe40
mov eax, dword [esp + 0x48]
mov dword [esp + 0x80], eax
test eax, eax
je 0x46fe06
mov ecx, eax
call fcn.0040b9a0
push ebp
lea eax, [esp + 0x84]
push eax
mov edi, dword [esp + 0x30]
mov ebp, dword [edi + 0xf0]
mov eax, dword [ebp + 0x70]
push eax
call fcn.00417970
add esp, 0xc
cmp dword [esp + 0x80], 0
je 0x46ff45
mov ecx, dword [esp + 0x80]
jmp 0x46ff40
mov dword [esp + 0x84], 0
push 0x4cc1fa
call fcn.0040ca30
pop ecx
push eax
push 0x4cc1fa
lea ecx, [esp + 0x8c]
call fcn.0040bb00
cmp dword [esp + 0x84], 0
je 0x46fe81
mov edx, dword [esp + 0x84]
mov eax, dword [0x4bf2dc]
mov dword [edx + 0x10], eax
lea eax, [esp + 0x84]
push eax
lea ecx, [esp + 0x4c]
push ecx
lea eax, [esp + 0x90]
push eax
call fcn.0040c300
add esp, 0xc
push edi
lea eax, [esp + 0x90]
push eax
call fcn.0040cc60
pop ecx
pop ecx
lea eax, [esp + 0x8c]
push eax
lea ebx, [esp + 0x8c]
push ebx
lea eax, [esp + 0x98]
push eax
call fcn.0040c300
add esp, 0xc
push ebp
lea eax, [esp + 0x94]
push eax
mov edx, dword [esp + 0x30]
mov ecx, dword [edx + 0xf0]
mov eax, dword [ecx + 0x70]
push eax
call fcn.00417970
add esp, 0xc
cmp dword [esp + 0x90], 0
je 0x46ff03
mov ecx, dword [esp + 0x90]
call fcn.0040b9e0
cmp dword [esp + 0x8c], 0
je 0x46ff19
mov ecx, dword [esp + 0x8c]
call fcn.0040b9e0
cmp dword [esp + 0x88], 0
je 0x46ff2f
mov ecx, dword [esp + 0x88]
call fcn.0040b9e0
cmp dword [esp + 0x84], 0
je 0x46ff45
mov ecx, dword [esp + 0x84]
call fcn.0040b9e0
inc dword [esp + 0x24]
mov eax, dword [esp + 0x24]
cmp eax, dword [esp + 0x34]
jl 0x46f950
mov ebx, dword [esp + 0x28]
mov edx, dword [ebx + 0xf0]
mov eax, dword [edx + 0x70]
push eax
call fcn.00417860
pop ecx
mov dword [esp + 0x20], eax
push eax
call fcn.00417880
pop ecx
test al, al
je 0x470177
mov eax, eax
push dword [esp + 0x20]
call fcn.004178a0
pop ecx
mov dword [esp + 0x10], eax
push 0x4f1d68
push eax
call fcn.0046f740
pop ecx
pop ecx
test al, al
je 0x470165
mov edi, dword [esp + 0x10]
mov eax, dword [0x4d2628]
push eax
push edi
call fcn.004457d0
pop ecx
pop ecx
mov ebp, eax
test ebp, ebp
je 0x46ffbf
push edi
call ebp
pop ecx
mov edx, dword [edi + 0x1c]
test edx, edx
je 0x470165
mov eax, dword [edi + 0x28]
mov dword [edx + 0x38], eax
cmp byte [edi + 0x2c], 0
jne 0x46ffe3
push 8
mov ecx, dword [edi + 0x1c]
mov esi, dword [ecx]
call dword [esi + 0xac]
cmp byte [edi + 0x2d], 0
jne 0x46fff6
push 6
mov ecx, dword [edi + 0x1c]
mov ebx, dword [ecx]
call dword [ebx + 0xac]
mov ebp, dword [esp + 0x28]
mov edx, dword [ebp + 0xf0]
mov eax, dword [edx + 0x70]
push eax
call fcn.00417860
pop ecx
mov esi, eax
push esi
call fcn.00417880
pop ecx
test al, al
je 0x470084
push esi
call fcn.004178a0
pop ecx
mov ebx, eax
push 0x4f1d68
push ebx
call fcn.0046f740
pop ecx
pop ecx
test al, al
je 0x470079
mov ecx, dword [ebx + 0x1c]
test ecx, ecx
je 0x470079
push 1
mov eax, dword [edi + 0x1c]
push eax
mov ebp, dword [ecx]
call dword [ebp + 0x60]
test al, al
je 0x470079
cmp byte [ebx + 0x2d], 0
jne 0x470060
cmp byte [edi + 0x2d], 0
je 0x470060
push 6
mov ecx, dword [edi + 0x1c]
mov ebp, dword [ecx]
call dword [ebp + 0xac]
cmp byte [ebx + 0x2c], 0
jne 0x470079
cmp byte [edi + 0x2c], 0
je 0x470079
push 8
mov ecx, dword [edi + 0x1c]
mov ebp, dword [ecx]
call dword [ebp + 0xac]
push esi
call fcn.00417880
pop ecx
test al, al
jne 0x470017
push esi
call fcn.004178d0
pop ecx
mov eax, dword [edi + 0x4c]
mov dword [esp + 0x94], eax
test eax, eax
je 0x4700a0
mov ecx, eax
call fcn.0040b9a0
lea eax, [esp + 0x94]
push eax
mov ecx, dword [edi + 0x1c]
call fcn.004523b0
cmp dword [esp + 0x94], 0
je 0x4700c6
mov ecx, dword [esp + 0x94]
call fcn.0040b9e0
mov eax, dword [edi + 0x54]
mov dword [esp + 0x98], eax
test eax, eax
je 0x4700db
mov ecx, eax
call fcn.0040b9a0
lea eax, [esp + 0x98]
push eax
mov ecx, dword [edi + 0x1c]
mov ebp, dword [ecx]
call dword [ebp + 0x110]
cmp dword [esp + 0x98], 0
je 0x470104
mov ecx, dword [esp + 0x98]
call fcn.0040b9e0
mov eax, dword [edi + 0x50]
mov dword [esp + 0x9c], eax
test eax, eax
je 0x470119
mov ecx, eax
call fcn.0040b9a0
lea eax, [esp + 0x9c]
push eax
mov ecx, dword [edi + 0x1c]
call fcn.00452400
cmp dword [esp + 0x9c], 0
je 0x47013f
mov ecx, dword [esp + 0x9c]
call fcn.0040b9e0
mov edx, dword [edi + 0x1c]
mov al, byte [edi + 0x2e]
mov byte [edx + 0x41], al
push 8
call fcn.004496d0
pop ecx
test eax, eax
je 0x47015c
push edi
mov ecx, eax
call fcn.00472150
push eax
mov ecx, dword [edi + 0x1c]
call fcn.0040b350
push dword [esp + 0x20]
call fcn.00417880
pop ecx
test al, al
jne 0x46ff80
push dword [esp + 0x20]
call fcn.004178d0
pop ecx
mov eax, dword [esp + 0xd0]
cmp byte [eax + 0x64], 0
je 0x47019b
mov eax, dword [eax + 0x50]
push eax
mov ecx, dword [esp + 0x2c]
call fcn.0040df70
mov eax, dword [esp + 0xd0]
mov eax, dword [eax + 0x60]
mov dword [esp + 0xa0], eax
test eax, eax
je 0x4701b7
mov ecx, eax
call fcn.0040b9a0
lea eax, [esp + 0xa0]
push eax
mov ecx, dword [esp + 0x2c]
call fcn.004523b0
cmp dword [esp + 0xa0], 0
je 0x4701de
mov ecx, dword [esp + 0xa0]
call fcn.0040b9e0
mov eax, dword [esp + 0xd0]
cmp byte [eax + 0x66], 0
je 0x4701f8
push 1
push 0
push eax
call fcn.0048bb70
add esp, 0xc
lea eax, [esp + 0x50]
push eax
mov ecx, dword [esp + 0xd0]
call fcn.00407ba0
mov dword [esp + 0x18], 0
cmp dword [esp + 0x50], 0
jle 0x470729
lea eax, [eax]
mov dword [esp + 0x5c], 0
mov dword [esp + 0x60], 0
mov dword [esp + 0x68], 0
mov dword [esp + 0x6c], 0
lea eax, [esp + 0x2c]
push eax
mov ecx, dword [esp + 0xd0]
call fcn.00407ba0
xor edi, edi
mov ebx, dword [esp + 0x28]
mov esi, dword [ebx + 0xf0]
mov eax, dword [esi + 0x70]
push eax
call fcn.00417860
pop ecx
mov ebp, eax
push ebp
call fcn.00417880
pop ecx
test al, al
je 0x470291
push ebp
call fcn.004178a0
pop ecx
mov dword [esp + 0x10], eax
cmp edi, dword [esp + 0x2c]
je 0x470291
inc edi
push ebp
call fcn.00417880
pop ecx
test al, al
jne 0x470274
push ebp
call fcn.004178d0
pop ecx
mov eax, dword [esp + 0x10]
mov dword [esp + 0x54], eax
lea eax, [esp + 0x5c]
push eax
mov ecx, dword [esp + 0xd0]
call fcn.00407c50
lea eax, [esp + 0x2c]
push eax
mov ecx, dword [esp + 0xd0]
call fcn.00407ba0
xor ebp, ebp
mov ecx, dword [esp + 0x28]
mov edx, dword [ecx + 0xf0]
mov eax, dword [edx + 0x70]
push eax
call fcn.00417860
pop ecx
mov esi, eax
push esi
call fcn.00417880
pop ecx
test al, al
je 0x470302
push esi
call fcn.004178a0
pop ecx
mov dword [esp + 0x10], eax
cmp ebp, dword [esp + 0x2c]
je 0x470302
inc ebp
push esi
call fcn.00417880
pop ecx
test al, al
jne 0x4702e5
push esi
call fcn.004178d0
pop ecx
mov eax, dword [esp + 0x10]
mov dword [esp + 0x58], eax
lea eax, [esp + 0x60]
push eax
mov ecx, dword [esp + 0xd0]
call fcn.00407c50
lea eax, [esp + 0x64]
push eax
mov ecx, dword [esp + 0xd0]
call fcn.00407ba0
lea eax, [esp + 0x68]
push eax
mov ecx, dword [esp + 0xd0]
call fcn.00407c50
lea eax, [esp + 0x6c]
push eax
mov ecx, dword [esp + 0xd0]
call fcn.00407c50
xor bl, bl
mov byte [esp + 0x14], 0
cmp dword [esp + 0x54], 0
jne 0x4703a0
cmp dword [esp + 0x6c], 0
je 0x470373
mov ecx, dword [esp + 0x6c]
call fcn.0040b9e0
cmp dword [esp + 0x68], 0
je 0x470383
mov ecx, dword [esp + 0x68]
call fcn.0040b9e0
cmp dword [esp + 0x60], 0
je 0x470707
mov ecx, dword [esp + 0x60]
call fcn.0040b9e0
jmp 0x470707
cmp dword [esp + 0x68], 0
je 0x4703b0
mov eax, dword [esp + 0x68]
mov esi, dword [eax + 0xc]
jmp 0x4703b2
xor esi, esi
test esi, esi
je 0x4704b2
mov eax, dword [esp + 0x68]
mov dword [esp + 0xa4], eax
test eax, eax
je 0x4703d0
mov ecx, eax
call fcn.0040b9a0
mov eax, dword [esp + 0x5c]
mov dword [esp + 0xa8], eax
test eax, eax
je 0x4703e6
mov ecx, eax
call fcn.0040b9a0
lea eax, [esp + 0xa8]
push eax
lea ebx, [esp + 0xa8]
push ebx
lea eax, [esp + 0x5c]
push eax
call fcn.0046f6a0
add esp, 0xc
mov bl, al
cmp dword [esp + 0xa8], 0
je 0x47041b
mov ecx, dword [esp + 0xa8]
call fcn.0040b9e0
cmp dword [esp + 0xa4], 0
je 0x470431
mov ecx, dword [esp + 0xa4]
call fcn.0040b9e0
test bl, bl
jne 0x470470
cmp dword [esp + 0x6c], 0
je 0x470445
mov ecx, dword [esp + 0x6c]
call fcn.0040b9e0
cmp dword [esp + 0x68], 0
je 0x470455
mov ecx, dword [esp + 0x68]
call fcn.0040b9e0
cmp dword [esp + 0x60], 0
je 0x470707
mov ecx, dword [esp + 0x60]
call fcn.0040b9e0
jmp 0x470707
cmp dword [esp + 0x54], 0
jne 0x4704b0
cmp dword [esp + 0x6c], 0
je 0x470487
mov ecx, dword [esp + 0x6c]
call fcn.0040b9e0
cmp dword [esp + 0x68], 0
je 0x470497
mov ecx, dword [esp + 0x68]
call fcn.0040b9e0
cmp dword [esp + 0x60], 0
je 0x470707
mov ecx, dword [esp + 0x60]
call fcn.0040b9e0
jmp 0x470707
mov bl, 1
cmp dword [esp + 0x58], 0
jne 0x4704f2
cmp dword [esp + 0x6c], 0
je 0x4704c9
mov ecx, dword [esp + 0x6c]
call fcn.0040b9e0
cmp dword [esp + 0x68], 0
je 0x4704d9
mov ecx, dword [esp + 0x68]
call fcn.0040b9e0
cmp dword [esp + 0x60], 0
je 0x470707
mov ecx, dword [esp + 0x60]
call fcn.0040b9e0
jmp 0x470707
cmp dword [esp + 0x6c], 0
je 0x470502
mov eax, dword [esp + 0x6c]
mov edx, dword [eax + 0xc]
jmp 0x470504
xor edx, edx
test edx, edx
je 0x47060a
mov eax, dword [esp + 0x6c]
mov dword [esp + 0xac], eax
test eax, eax
je 0x470522
mov ecx, eax
call fcn.0040b9a0
mov eax, dword [esp + 0x60]
mov dword [esp + 0xb0], eax
test eax, eax
je 0x470538
mov ecx, eax
call fcn.0040b9a0
lea eax, [esp + 0xb0]
push eax
lea ecx, [esp + 0xb0]
push ecx
lea eax, [esp + 0x60]
push eax
call fcn.0046f6a0
add esp, 0xc
mov byte [esp + 8], al
cmp dword [esp + 0xb0], 0
je 0x47056f
mov ecx, dword [esp + 0xb0]
call fcn.0040b9e0
cmp dword [esp + 0xac], 0
je 0x470585
mov ecx, dword [esp + 0xac]
call fcn.0040b9e0
cmp byte [esp + 8], 0
jne 0x4705c5
cmp dword [esp + 0x6c], 0
je 0x47059c
mov ecx, dword [esp + 0x6c]
call fcn.0040b9e0
cmp dword [esp + 0x68], 0
je 0x4705ac
mov ecx, dword [esp + 0x68]
call fcn.0040b9e0
cmp dword [esp + 0x60], 0
je 0x470707
mov ecx, dword [esp + 0x60]
call fcn.0040b9e0
jmp 0x470707
cmp dword [esp + 0x58], 0
jne 0x470605
cmp dword [esp + 0x6c], 0
je 0x4705dc
mov ecx, dword [esp + 0x6c]
call fcn.0040b9e0
cmp dword [esp + 0x68], 0
je 0x4705ec
mov ecx, dword [esp + 0x68]
call fcn.0040b9e0
cmp dword [esp + 0x60], 0
je 0x470707
mov ecx, dword [esp + 0x60]
call fcn.0040b9e0
jmp 0x470707
mov byte [esp + 0x14], 1
mov eax, dword [esp + 0x64]
push eax
call fcn.00496970
pop ecx
mov ebp, eax
push 0x4f0c10
push ebp
call fcn.0042a890
pop ecx
pop ecx
test al, al
je 0x4706af
mov dword [esp + 0xb4], 0
push str.bind
call fcn.0040ca30
pop ecx
push eax
push str.bind
lea ecx, [esp + 0xbc]
call fcn.0040bb00
cmp dword [esp + 0xb4], 0
je 0x47066d
mov edi, dword [esp + 0xb4]
mov eax, dword [0x4bf2dc]
mov dword [edi + 0x10], eax
lea eax, [esp + 0xb4]
push eax
push 0x4f0c10
push ebp
call fcn.0042a8c0
add esp, 0xc
mov esi, eax
cmp dword [esp + 0xb4], 0
je 0x47069b
mov ecx, dword [esp + 0xb4]
call fcn.0040b9e0
test esi, esi
je 0x4706af
mov edx, dword [esp + 0x58]
push edx
mov eax, dword [esp + 0x58]
push eax
push ebp
call esi
add esp, 0xc
test bl, bl
je 0x4706be
mov eax, dword [esp + 0x54]
push eax
call fcn.00444ab0
pop ecx
cmp byte [esp + 0x14], 0
je 0x4706d0
mov eax, dword [esp + 0x58]
push eax
call fcn.00444ab0
pop ecx
push ebp
call fcn.00444ab0
pop ecx
cmp dword [esp + 0x6c], 0
je 0x4706e7
mov ecx, dword [esp + 0x6c]
call fcn.0040b9e0
cmp dword [esp + 0x68], 0
je 0x4706f7
mov ecx, dword [esp + 0x68]
call fcn.0040b9e0
cmp dword [esp + 0x60], 0
je 0x470707
mov ecx, dword [esp + 0x60]
call fcn.0040b9e0
cmp dword [esp + 0x5c], 0
je 0x470717
mov ecx, dword [esp + 0x5c]
call fcn.0040b9e0
inc dword [esp + 0x18]
mov eax, dword [esp + 0x18]
cmp eax, dword [esp + 0x50]
jl 0x470220
mov ecx, dword [esp + 0x28]
mov edi, dword [ecx + 0xf0]
mov eax, dword [edi + 0x70]
push eax
call fcn.00417860
pop ecx
mov esi, eax
push esi
call fcn.00417880
pop ecx
test al, al
je 0x470795
lea eax, [eax]
push esi
call fcn.004178a0
pop ecx
mov dword [esp + 0x10], eax
push 0x4f1d68
push eax
call fcn.0046f740
pop ecx
pop ecx
test al, al
je 0x47078a
mov eax, dword [0x4d2640]
push eax
push dword [esp + 0x14]
call fcn.004457d0
pop ecx
pop ecx
mov ebx, eax
test ebx, ebx
je 0x47078a
push dword [esp + 0x10]
call ebx
pop ecx
push esi
call fcn.00417880
pop ecx
test al, al
jne 0x470750
push esi
call fcn.004178d0
pop ecx
mov eax, dword [0x4d2c88]
push eax
mov ebp, dword [esp + 0x2c]
mov eax, dword [ebp + 0xf0]
push eax
call fcn.004457d0
pop ecx
pop ecx
mov edi, eax
test edi, edi
je 0x4707c8
mov ebx, dword [esp + 0x28]
mov eax, dword [ebx + 0xf0]
push eax
call edi
pop ecx
call dword [0x4ea774]
cmp eax, 5
jb 0x4707ed
push 0
push 0x10002
push 0x127
mov edx, dword [esp + 0x34]
mov eax, dword [edx + 0x58]
push eax
call dword [0x4ea908]
call fcn.0045bf90
test al, al
je 0x47080f
call fcn.00497d60
mov eax, dword [esp + 0x28]
cmp byte [eax + 0x92], 0
je 0x47080f
mov ecx, eax
mov esi, dword [ecx]
call dword [esi + 0x68]
mov eax, dword [esp + 0xd0]
mov eax, dword [eax + 0x40]
test eax, eax
je 0x470829
mov ecx, dword [eax + 0x1c]
test ecx, ecx
je 0x470829
mov edi, dword [ecx]
call dword [edi + 0x38]
mov eax, dword [esp + 0xd0]
cmp byte [eax + 0x18], 0
je 0x470848
push 1
push 0
mov ecx, dword [esp + 0x30]
mov eax, dword [ecx + 0x58]
push eax
call dword [0x4ea8bc]
cmp dword [esp + 0x48], 0
je 0x470858
mov ecx, dword [esp + 0x48]
call fcn.0040b9e0
cmp dword [esp + 0x40], 0
je 0x470868
mov ecx, dword [esp + 0x40]
call fcn.0040b9e0
cmp dword [esp + 0x3c], 0
je 0x470878
mov ecx, dword [esp + 0x3c]
call fcn.0040b9e0
mov eax, dword [esp + 0x28]
add esp, 0xb8
pop ebp
pop edi
pop esi
pop ebx
ret 0xc