Function at 0x41f145
Capabilities:
Check for software breakpoints
Encode data using base64
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x1ac
mov eax, dword [ebp + 8]
cmp dword [edx], 0
mov dword [ebp - 0x150], 0
mov dword [ebp - 0x13c], 0
mov dword [ebp - 0x16c], eax
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x138], 0
mov dword [ebp - 0x174], eax
mov eax, dword [ebp + 0x10]
mov dword [ebp - 0x134], 0
mov dword [ebp - 0x194], eax
mov dword [ebp - 0x130], 0
je 0x41f9f8
mov eax, dword [ecx + 0x20]
mov ebx, edx
mov edx, dword [ecx + 0x24]
mov edi, ecx
mov dword [ebp - 0x160], eax
mov eax, dword [ebx + 0x18]
mov dword [ebp - 0x15c], edx
mov edx, dword [ebx + 0x1c]
mov dword [esp], eax
mov eax, dword [ebp - 0x160]
mov dword [esp + 4], edx
mov edx, dword [ebp - 0x15c]
call fcn.0040a453
test al, al
je 0x41f250
mov eax, dword [edi + 8]
mov edx, dword [edi + 0xc]
mov dword [ebp - 0x160], eax
mov eax, dword [ebx]
mov dword [ebp - 0x15c], edx
mov edx, dword [ebx + 4]
mov dword [esp], eax
mov eax, dword [ebp - 0x160]
mov dword [esp + 4], edx
mov edx, dword [ebp - 0x15c]
call fcn.0040a453
test al, al
je 0x41f250
mov eax, dword [edi + 0x28]
mov edx, dword [edi + 0x2c]
mov dword [ebp - 0x160], eax
mov eax, dword [ebx + 0x20]
mov dword [ebp - 0x15c], edx
mov edx, dword [ebx + 0x24]
mov dword [esp], eax
mov eax, dword [ebp - 0x160]
mov dword [esp + 4], edx
mov edx, dword [ebp - 0x15c]
call fcn.0040a453
test al, al
je 0x41f250
cmp byte [edi + 4], 0
jne 0x41f9ed
mov edx, 0x44
lea eax, [ebp - 0xbc]
call fcn.00401950
mov edx, dword [edi + 0x60]
mov dword [ebp - 0xd4], 0
mov dword [ebp - 0xd0], 0
test edx, edx
jne 0x41f27d
mov edx, ebx
lea ecx, [ebp - 0xbc]
call fcn.00409e66
mov eax, dword [ebp - 0xbc]
mov edx, dword [ebp - 0xb8]
mov dword [esp], eax
mov dword [esp + 4], edx
call fcn.00404fa0
cmp byte [0x43f718], 0
mov dword [ebp - 0x160], eax
push esi
mov dword [ebp - 0x15c], edx
push esi
mov dword [ebp - 0xd4], eax
mov dword [ebp - 0xd0], edx
jne 0x41f9d7
mov eax, dword [0x438370]
mov edx, dword [0x438374]
mov dword [esp], eax
mov eax, dword [ebp - 0x160]
mov dword [esp + 4], edx
mov edx, dword [ebp - 0x15c]
call fcn.0040a453
test al, al
jne 0x41f2f6
cmp byte [edi + 4], 0
je 0x41f34e
jmp 0x41f336
mov ecx, 0x20
mov edx, 4
call fcn.00402761
mov dword [eax], 0x43f7d4
mov ecx, eax
mov dword [eax + 8], str.HttpRequestError
mov dword [eax + 0xc], 0x55
mov dword [eax + 0x10], 0x438380
mov dword [eax + 4], 0
mov dword [esp + 8], 0x376
jmp 0x41f9bb
mov ecx, edi
call fcn.0040b72c
cmp byte [0x43f718], 0
jne 0x41f9d7
mov byte [edi + 4], 0
cmp dword [ebp - 0x9c], 0
mov esi, 0x50
je 0x41f385
mov eax, dword [ebp - 0x9c]
mov edx, dword [ebp - 0x98]
mov dword [esp], eax
mov dword [esp + 4], edx
call fcn.0040505e
cmp byte [0x43f718], 0
mov esi, eax
push ecx
push ecx
jne 0x41f9d7
mov eax, dword [ebp - 0xa4]
cmp byte [0x43f718], 0
mov dword [ebp - 0x184], eax
mov eax, dword [ebp - 0xa0]
mov dword [ebp - 0x188], eax
jne 0x41f90a
mov edx, 0x20
lea eax, [ebp - 0x78]
mov dword [ebp - 0xdc], 0
mov dword [ebp - 0xcc], 0
mov dword [ebp - 0xc8], 0
call fcn.00401950
cmp byte [0x43f718], 0
mov dword [ebp - 0xdc], 0
jne 0x41f4b9
mov ecx, 6
movzx esi, si
mov dword [ebp - 0x74], 0
mov dword [ebp - 0x70], 1
call fcn.004096d1
xor edx, edx
mov dword [ebp - 0xc4], 0
mov dword [ebp - 0x6c], eax
mov ecx, edx
lea eax, [ebp - 0xc4]
mov edx, esi
mov dword [ebp - 0xc0], 0
call fcn.0040360e
mov esi, dword [ebp - 0xc4]
mov eax, dword [ebp - 0xc0]
cmp byte [0x43f718], 0
mov dword [ebp - 0xcc], esi
mov dword [ebp - 0xc8], eax
jne 0x41f4b9
mov ecx, dword [0x43f7b0]
mov edx, 0x437c91
test esi, esi
je 0x41f462
lea edx, [eax + 4]
cmp dword [ebp - 0x184], 0
mov eax, 0x437c91
je 0x41f479
mov eax, dword [ebp - 0x188]
add eax, 4
lea esi, [ebp - 0xdc]
mov dword [esp + 4], edx
mov dword [esp + 0xc], esi
lea esi, [ebp - 0x78]
mov dword [esp + 8], esi
mov dword [esp], eax
call ecx
sub esp, 0x10
test eax, eax
je 0x41f4b9
call fcn.00405700
cmp byte [0x43f718], 0
jne 0x41f4b9
mov edx, dword [0x432b28]
mov ecx, dword [0x432b2c]
call fcn.004056c4
lea ecx, [ebp - 0xcc]
call fcn.004022ff
mov eax, dword [ebp - 0xdc]
mov dword [ebp - 0x180], eax
mov al, byte [0x43f718]
mov byte [ebp - 0x170], al
test al, al
jne 0x41f90a
mov edx, 0x60
lea eax, [ebp - 0x78]
call fcn.00401950
mov edx, dword [0x43e07c]
xor eax, eax
mov dword [ebp + eax*4 - 0x78], edx
inc eax
cmp eax, 0x18
jne 0x41f4f8
mov dword [ebp - 0x160], 0
mov esi, dword [ebp - 0x180]
mov byte [ebp - 0x168], 0
mov dword [ebp - 0x178], 0
test esi, esi
je 0x41f792
mov ecx, dword [esi + 4]
mov edx, 2
lea eax, [ebp - 0xf4]
mov dword [ebp - 0x17c], ecx
call fcn.00401950
mov edx, 2
lea eax, [ebp - 0xec]
call fcn.00401950
mov edx, 2
lea eax, [ebp - 0xe4]
call fcn.00401950
mov edx, 2
lea eax, [ebp - 0xdc]
call fcn.00401950
mov edx, 2
lea eax, [ebp - 0xcc]
call fcn.00401950
mov ecx, dword [ebp - 0x17c]
test ecx, ecx
je 0x41f595
cmp ecx, 2
jne 0x41f5a5
jmp 0x41f5c9
xor eax, eax
call fcn.00409707
mov word [ebp - 0xec], ax
jmp 0x41f5ed
cmp ecx, 0x17
je 0x41f5dc
lea eax, [ebp - 0xc4]
mov edx, 2
call fcn.00401950
mov eax, dword [ebp - 0xc4]
mov word [ebp - 0xcc], ax
jmp 0x41f5ed
mov eax, 2
call fcn.00409707
mov word [ebp - 0xe4], ax
jmp 0x41f5ed
mov eax, 0x17
call fcn.00409707
mov word [ebp - 0xdc], ax
cmp byte [0x43f718], 0
jne 0x41f5fd
mov word [ebp - 0xf4], ax
mov al, byte [ebp - 0xf4]
cmp byte [0x43f718], 0
mov byte [ebp - 0x17c], al
mov al, byte [ebp - 0xf3]
mov byte [ebp - 0x189], al
jne 0x41f90a
test al, al
je 0x41f64b
movzx eax, byte [ebp - 0x17c]
mov dword [ebp - 0x168], eax
mov eax, dword [ebp + eax*4 - 0x78]
mov dword [ebp - 0x160], eax
cmp eax, dword [0x43e07c]
jne 0x41f72a
jmp 0x41f653
mov esi, dword [esi + 0x1c]
jmp 0x41f523
mov dword [esp + 4], 0
mov ecx, dword [ebp - 0x168]
mov edx, 1
mov dword [esp], 6
call fcn.0041d83b
cmp byte [0x43f718], 0
mov dword [ebp - 0x160], eax
push edx
push edx
jne 0x41f90a
cmp eax, dword [0x43e07c]
je 0x41f6a4
mov eax, dword [ebp - 0x168]
mov edx, dword [ebp - 0x160]
mov dword [ebp + eax*4 - 0x78], edx
jmp 0x41f72a
call fcn.00405700
cmp byte [0x43f718], 0
mov dword [ebp - 0x190], eax
jne 0x41f90a
mov eax, dword [ebp - 0x180]
mov dword [esp], eax
call dword [0x43f7ac]
push eax
xor eax, eax
mov ecx, dword [ebp + eax*4 - 0x78]
cmp ecx, dword [0x43e07c]
jne 0x41f6e2
cmp eax, 0x17
je 0x41f701
inc eax
jmp 0x41f6ce
mov dword [ebp - 0x198], eax
call fcn.004096bf
cmp byte [0x43f718], 0
mov eax, dword [ebp - 0x198]
je 0x41f6da
jmp 0x41f90a
mov edx, dword [0x42d5c8]
mov ecx, dword [0x42d5cc]
mov eax, dword [ebp - 0x190]
call fcn.004056c4
cmp byte [0x43f718], 0
je 0x41f68f
jmp 0x41f90a
mov eax, dword [esi + 0x10]
mov dword [esp + 8], eax
mov eax, dword [esi + 0x18]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x160]
mov dword [esp], eax
call dword [0x43f7a8]
sub esp, 0xc
test eax, eax
je 0x41f77a
call fcn.00405700
cmp byte [0x43f718], 0
mov dword [ebp - 0x178], eax
jne 0x41f90a
mov al, byte [ebp - 0x17c]
mov esi, dword [esi + 0x1c]
mov byte [ebp - 0x168], al
jmp 0x41f523
mov al, byte [ebp - 0x17c]
mov byte [ebp - 0x168], al
mov al, byte [ebp - 0x189]
mov byte [ebp - 0x170], al
mov eax, dword [ebp - 0x180]
mov dword [esp], eax
call dword [0x43f7ac]
movzx eax, byte [ebp - 0x168]
push esi
xor esi, esi
mov dword [ebp - 0x17c], eax
mov ecx, dword [ebp + esi*4 - 0x78]
cmp ecx, dword [0x43e07c]
jne 0x41f7c5
cmp esi, 0x17
je 0x41f7e0
inc esi
jmp 0x41f7b1
cmp esi, dword [ebp - 0x17c]
je 0x41f7bd
call fcn.004096bf
cmp byte [0x43f718], 0
je 0x41f7bd
jmp 0x41f90a
cmp byte [ebp - 0x170], 0
jne 0x41f8b5
cmp dword [ebp - 0x178], 0
jne 0x41f8f3
mov edx, 4
mov ecx, 0x20
call fcn.00402761
mov esi, eax
mov dword [eax], 0x43f6fc
mov dword [eax + 8], str.IOError
mov eax, dword [ebp - 0x184]
mov dword [ebp - 0xc4], 0
mov dword [ebp - 0xc0], 0
lea ecx, [eax + 0x1a]
call fcn.00402ad2
mov ecx, dword [0x43836c]
mov dword [ebp - 0xc0], edx
mov edx, dword [0x438368]
mov dword [ebp - 0xc4], eax
lea eax, [ebp - 0xc4]
call fcn.00401929
mov edx, dword [ebp - 0x184]
mov ecx, dword [ebp - 0x188]
lea eax, [ebp - 0xc4]
call fcn.00401929
mov edx, dword [ebp - 0xc0]
mov eax, dword [ebp - 0xc4]
mov ecx, esi
mov dword [esi + 4], 0
mov dword [esi + 0x10], edx
mov edx, str.IOError
mov dword [esi + 0xc], eax
mov dword [esp + 8], 0x80a
mov dword [esp + 4], str.net.nim
mov dword [esp], str.dial
call fcn.00403142
sub esp, 0xc
jmp 0x41f90a
mov edx, 4
mov ecx, 0xfb8
call fcn.00402761
mov esi, eax
mov eax, dword [ebp - 0x160]
mov byte [esi + 4], 1
mov dword [esi], eax
mov al, byte [ebp - 0x168]
mov word [esi + 0xfb5], 0x601
mov byte [esi + 0xfb4], al
mov dword [esi + 0xfa8], 0
jmp 0x41f90c
mov edx, dword [0x42d5c8]
mov ecx, dword [0x42d5cc]
mov eax, dword [ebp - 0x178]
call fcn.004056c4
xor esi, esi
cmp byte [0x43f718], 0
jne 0x41f9d7
mov eax, dword [edi]
call fcn.00401e0e
test al, al
je 0x41f930
mov ecx, dword [edi]
mov edx, 4
call fcn.0040231c
mov dword [edi], esi
mov eax, dword [ebx]
mov edx, dword [ebx + 4]
mov dword [ebp - 0x160], eax
mov eax, dword [0x438370]
mov dword [ebp - 0x15c], edx
mov edx, dword [0x438374]
mov dword [esp], eax
mov eax, dword [ebp - 0x160]
mov dword [esp + 4], edx
mov edx, dword [ebp - 0x15c]
call fcn.0040a453
test al, al
je 0x41f970
cmp dword [edi + 0x60], 0
jne 0x41f980
lea ecx, [edi + 8]
mov edx, ebx
call fcn.00409e66
mov byte [edi + 4], 1
jmp 0x41f9d7
mov ecx, 0x20
mov edx, 4
call fcn.00402761
mov dword [eax], 0x43f7d4
mov ecx, eax
mov dword [eax + 8], str.HttpRequestError
mov dword [eax + 0xc], 0x55
mov dword [eax + 0x10], 0x438380
mov dword [eax + 4], 0
mov dword [esp + 8], 0x3a9
mov dword [esp + 4], str.httpclient.nim
mov edx, str.HttpRequestError
mov dword [esp], str.newConnection
call fcn.00403142
sub esp, 0xc
lea ecx, [ebp - 0xd4]
call fcn.004022ff
lea ecx, [ebp - 0xbc]
call fcn.00409f39
cmp byte [0x43f718], 0
je 0x41fa56
jmp 0x41fa4f
mov edx, 4
mov ecx, 0x20
call fcn.00402761
mov edx, str.ValueError
mov dword [eax], 0x43e150
mov ecx, eax
mov dword [eax + 8], str.ValueError
mov dword [eax + 0xc], 0x17
mov dword [eax + 0x10], 0x4383f4
mov dword [eax + 4], 0
mov dword [esp + 8], 0x3eb
mov dword [esp + 4], str.httpclient.nim
mov dword [esp], str.requestAux
call fcn.00403142
sub esp, 0xc
xor eax, eax
jmp 0x4217dd
mov ecx, dword [edi + 0x4c]
xor edx, edx
call fcn.0041eff8
cmp byte [0x43f718], 0
mov dword [ebp - 0x150], eax
mov ecx, eax
jne 0x41fa4f
mov eax, dword [0x42d438]
mov edx, dword [0x42d43c]
mov dword [esp], eax
mov dword [esp + 4], edx
call fcn.0040ad23
cmp byte [0x43f718], 0
push ecx
push ecx
jne 0x41fa4f
test al, al
jne 0x41fb5d
cmp dword [ebp - 0x174], 0
jne 0x41fab2
cmp byte [ebp - 0x16c], 1
ja 0x41fb1d
jmp 0x41fb5d
mov ecx, dword [ebp - 0x174]
mov dword [ebp - 0x78], 0
mov dword [ebp - 0x74], 0
call fcn.00403772
cmp byte [0x43f718], 0
mov dword [ebp - 0x78], eax
mov dword [ebp - 0x74], edx
jne 0x41fa4f
mov dword [esp + 8], eax
mov eax, dword [0x42d438]
mov dword [esp + 0xc], edx
mov edx, dword [0x42d43c]
mov dword [esp], eax
mov ecx, dword [ebp - 0x150]
mov dword [esp + 4], edx
call fcn.0040ac5a
sub esp, 0x10
cmp byte [0x43f718], 0
jne 0x41fa4f
lea ecx, [ebp - 0x78]
call fcn.004022ff
jmp 0x41fb5d
mov eax, dword [0x4383ec]
mov edx, dword [0x4383f0]
mov ecx, dword [ebp - 0x150]
mov dword [esp + 8], eax
mov eax, dword [0x42d438]
mov dword [esp + 0xc], edx
mov edx, dword [0x42d43c]
mov dword [esp], eax
mov dword [esp + 4], edx
call fcn.0040ac5a
sub esp, 0x10
cmp byte [0x43f718], 0
jne 0x41fa4f
mov edx, dword [0x4383e8]
mov eax, dword [0x4383e4]
mov ecx, dword [ebp - 0x150]
mov dword [esp + 4], edx
mov dword [esp], eax
call fcn.0040ad23
cmp byte [0x43f718], 0
push edx
push edx
jne 0x41fa4f
test al, al
je 0x41fbab
mov eax, dword [ebp - 0x150]
cmp byte [ebp - 0x16c], 8
mov esi, dword [edi + 0x60]
mov dword [ebp - 0x168], eax
jbe 0x41fbed
xor eax, eax
xor edx, edx
jmp 0x41fc02
cmp dword [edi + 0x54], 0
jle 0x41fb8d
mov eax, dword [edi + 0x54]
mov edx, dword [edi + 0x58]
mov ecx, dword [ebp - 0x150]
mov dword [esp + 8], eax
mov eax, dword [0x4383dc]
mov dword [esp + 0xc], edx
mov edx, dword [0x4383e0]
mov dword [esp], eax
mov dword [esp + 4], edx
call fcn.0040ac5a
sub esp, 0x10
cmp byte [0x43f718], 0
je 0x41fb8d
jmp 0x41fa4f
movzx eax, byte [ebp - 0x16c]
movsx edx, byte [eax + 0x4382c4]
mov eax, dword [eax*4 + 0x4382a0]
mov dword [ebp - 0xe4], edx
mov edx, 0x20
mov dword [ebp - 0xe0], eax
lea eax, [ebp - 0xe4]
call fcn.00402caf
test esi, esi
je 0x41fce3
mov eax, dword [ebx]
mov edx, dword [ebx + 4]
mov dword [ebp - 0x160], eax
mov eax, dword [0x438370]
mov dword [ebp - 0x15c], edx
mov edx, dword [0x438374]
mov dword [esp], eax
mov eax, dword [ebp - 0x160]
mov dword [esp + 4], edx
mov edx, dword [ebp - 0x15c]
call fcn.0040a453
test al, al
jne 0x41fce3
lea eax, [ebp - 0x78]
mov edx, 0x44
call fcn.00401950
mov edx, ebx
lea ecx, [ebp - 0x78]
mov dword [ebp - 0xbc], 0
mov dword [ebp - 0xb8], 0
call fcn.00409e66
mov eax, dword [ebx]
mov edx, dword [ebx + 4]
mov dword [ebp - 0x160], eax
mov eax, dword [0x438370]
mov dword [ebp - 0x15c], edx
mov edx, dword [0x438374]
mov dword [esp], eax
mov eax, dword [ebp - 0x160]
mov dword [esp + 4], edx
mov edx, dword [ebp - 0x15c]
call fcn.0040a453
test al, al
je 0x41fcfe
mov eax, dword [0x42d4ac]
mov edx, dword [0x42d4b0]
lea ecx, [ebp - 0x78]
mov dword [esp], eax
mov dword [esp + 4], edx
call fcn.00402a05
push eax
push eax
jmp 0x41fcfe
cmp dword [ebx + 0x28], 0
mov edx, dword [ebx + 0x2c]
mov al, 1
jle 0x4204b3
cmp byte [edx + 4], 0x2f
setne al
jmp 0x4204b3
lea ecx, [ebp - 0x78]
call fcn.0040a018
cmp byte [0x43f718], 0
mov dword [ebp - 0xbc], eax
mov dword [ebp - 0xb8], edx
jne 0x4204c0
mov edx, dword [ebp - 0xbc]
lea ecx, [ebp - 0xe4]
call fcn.00402c28
mov edx, dword [ebp - 0xbc]
mov ecx, dword [ebp - 0xb8]
lea eax, [ebp - 0xe4]
call fcn.00401929
lea ecx, [ebp - 0xbc]
call fcn.004022ff
lea ecx, [ebp - 0x78]
call fcn.00409f39
mov edx, 0xb
lea ecx, [ebp - 0xe4]
call fcn.00402c28
mov edx, dword [0x438350]
mov ecx, dword [0x438354]
lea eax, [ebp - 0xe4]
call fcn.00401929
mov eax, dword [0x42d3bc]
mov edx, dword [0x42d3c0]
mov ecx, dword [ebp - 0x168]
mov dword [esp], eax
mov dword [esp + 4], edx
call fcn.0040ad23
cmp byte [0x43f718], 0
push ecx
push ecx
jne 0x4204c0
test al, al
jne 0x41fecf
mov eax, dword [ebx + 0x20]
mov dword [ebp - 0x78], 0
mov dword [ebp - 0xbc], 0
mov ecx, dword [ebx + 0x18]
mov dword [ebp - 0xb8], 0
mov dword [ebp - 0x74], 0
test eax, eax
je 0x41fe46
lea ecx, [ecx + eax + 9]
call fcn.00402ad2
mov ecx, dword [0x438344]
mov dword [ebp - 0x74], edx
mov edx, dword [0x438340]
mov dword [ebp - 0x78], eax
lea eax, [ebp - 0x78]
call fcn.00401929
mov edx, dword [ebx + 0x18]
mov ecx, dword [ebx + 0x1c]
lea eax, [ebp - 0x78]
call fcn.00401929
mov edx, dword [0x438348]
mov ecx, dword [0x43834c]
lea eax, [ebp - 0x78]
call fcn.00401929
mov eax, dword [ebx + 0x20]
mov edx, dword [ebx + 0x24]
mov ecx, edx
mov edx, eax
lea eax, [ebp - 0x78]
call fcn.00401929
mov edx, dword [0x438360]
mov ecx, dword [0x438364]
jmp 0x41fe86
add ecx, 8
call fcn.00402ad2
mov ecx, dword [0x438344]
mov dword [ebp - 0x74], edx
mov edx, dword [0x438340]
mov dword [ebp - 0x78], eax
lea eax, [ebp - 0x78]
call fcn.00401929
mov eax, dword [ebx + 0x18]
mov edx, dword [ebx + 0x1c]
mov ecx, edx
mov edx, eax
lea eax, [ebp - 0x78]
call fcn.00401929
mov edx, dword [0x438360]
mov ecx, dword [0x438364]
lea eax, [ebp - 0x78]
call fcn.00401929
mov eax, dword [ebp - 0x78]
lea ecx, [ebp - 0xe4]
mov edx, eax
mov dword [ebp - 0xbc], eax
mov eax, dword [ebp - 0x74]
mov dword [ebp - 0xb8], eax
call fcn.00402c28
mov ecx, dword [ebp - 0xb8]
mov edx, dword [ebp - 0xbc]
lea eax, [ebp - 0xe4]
call fcn.00401929
lea ecx, [ebp - 0xbc]
call fcn.004022ff
mov edx, dword [0x43833c]
mov eax, dword [0x438338]
mov ecx, dword [ebp - 0x168]
mov dword [esp + 4], edx
mov dword [esp], eax
call fcn.0040ad23
cmp byte [0x43f718], 0
push edx
push edx
jne 0x4204c0
test al, al
jne 0x41ff26
mov edx, 0x18
lea ecx, [ebp - 0xe4]
call fcn.00402c28
mov edx, dword [0x438330]
mov ecx, dword [0x438334]
lea eax, [ebp - 0xe4]
call fcn.00401929
test esi, esi
je 0x420239
mov ebx, dword [esi + 0x44]
test ebx, ebx
je 0x420239
mov dword [ebp - 0xc0], 0
lea ecx, [ebp - 0x78]
mov dword [ebp - 0xb8], 0
mov eax, dword [esi + 0x48]
mov esi, 3
mov dword [ebp - 0xc4], 0
mov dword [ebp - 0x160], eax
lea eax, [ebx*4]
cdq
mov dword [ebp - 0x78], 0
idiv esi
mov dword [ebp - 0x74], 0
mov dword [ebp - 0xbc], 0
lea edx, [eax + 6]
call fcn.004035d3
mov eax, ebx
cdq
idiv esi
sub ebx, edx
mov dword [ebp - 0x178], edx
xor edx, edx
mov dword [ebp - 0x170], ebx
xor ebx, ebx
cmp dword [ebp - 0x170], edx
jne 0x41ffc3
cmp dword [ebp - 0x178], 1
jne 0x420073
jmp 0x420100
mov eax, dword [ebp - 0x160]
movzx esi, byte [eax + edx + 4]
mov eax, esi
mov esi, dword [ebp - 0x160]
shl eax, 0x10
movzx esi, byte [esi + edx + 5]
shl esi, 8
or esi, eax
mov eax, dword [ebp - 0x160]
movzx eax, byte [eax + edx + 6]
add edx, 3
mov dword [ebp - 0x17c], edx
or esi, eax
lea eax, [ebp - 0x78]
call fcn.00401f22
mov eax, esi
shr eax, 0x12
mov cl, byte [eax + str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_]
mov eax, dword [ebp - 0x74]
mov byte [eax + ebx + 4], cl
lea eax, [ebp - 0x78]
call fcn.00401f22
mov eax, esi
shr eax, 0xc
and eax, 0x3f
mov cl, byte [eax + str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_]
mov eax, dword [ebp - 0x74]
mov byte [eax + ebx + 5], cl
lea eax, [ebp - 0x78]
call fcn.00401f22
mov eax, esi
and esi, 0x3f
shr eax, 6
and eax, 0x3f
mov cl, byte [eax + str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_]
mov eax, dword [ebp - 0x74]
mov byte [eax + ebx + 6], cl
lea eax, [ebp - 0x78]
call fcn.00401f22
mov cl, byte [esi + str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_]
mov eax, dword [ebp - 0x74]
mov edx, dword [ebp - 0x17c]
mov byte [eax + ebx + 7], cl
add ebx, 4
jmp 0x41ffa9
cmp dword [ebp - 0x178], 2
jne 0x42016c
mov eax, dword [ebp - 0x160]
mov esi, dword [ebp - 0x170]
mov edx, dword [ebp - 0x170]
movzx esi, byte [eax + esi + 4]
mov eax, esi
mov esi, dword [ebp - 0x160]
shl eax, 0x10
movzx esi, byte [esi + edx + 5]
shl esi, 8
or esi, eax
lea eax, [ebp - 0x78]
call fcn.00401f22
mov eax, esi
shr eax, 0x12
mov dl, byte [eax + str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_]
mov eax, dword [ebp - 0x74]
mov byte [eax + ebx + 4], dl
lea eax, [ebp - 0x78]
call fcn.00401f22
mov eax, esi
shr esi, 6
shr eax, 0xc
and esi, 0x3f
and eax, 0x3f
mov dl, byte [eax + str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_]
mov eax, dword [ebp - 0x74]
mov byte [eax + ebx + 5], dl
lea eax, [ebp - 0x78]
call fcn.00401f22
mov dl, byte [esi + str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_]
mov eax, dword [ebp - 0x74]
mov byte [eax + ebx + 6], dl
jmp 0x420159
mov eax, dword [ebp - 0x160]
mov esi, dword [ebp - 0x170]
movzx esi, byte [eax + esi + 4]
lea eax, [ebp - 0x78]
call fcn.00401f22
shl esi, 0x10
mov eax, esi
shr esi, 0xc
shr eax, 0x12
and esi, 0x3f
mov dl, byte [eax + str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_]
mov eax, dword [ebp - 0x74]
mov byte [eax + ebx + 4], dl
lea eax, [ebp - 0x78]
call fcn.00401f22
mov eax, dword [ebp - 0x74]
mov dl, byte [esi + str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_]
mov byte [eax + ebx + 5], dl
lea eax, [ebp - 0x78]
call fcn.00401f22
mov eax, dword [ebp - 0x74]
mov byte [eax + ebx + 6], 0x3d
lea eax, [ebp - 0x78]
call fcn.00401f22
mov eax, dword [ebp - 0x74]
mov byte [eax + ebx + 7], 0x3d
add ebx, 4
lea ecx, [ebp - 0x78]
mov edx, ebx
call fcn.004035d3
mov ecx, dword [ebp - 0x78]
mov eax, dword [ebp - 0x74]
cmp byte [0x43f718], 0
mov dword [ebp - 0xc4], ecx
mov dword [ebp - 0xc0], eax
jne 0x4204c0
add ecx, 0x1d
mov dword [ebp - 0x78], 0
mov dword [ebp - 0x74], 0
call fcn.00402ad2
mov ecx, dword [0x43832c]
mov dword [ebp - 0x74], edx
mov edx, dword [0x438328]
mov dword [ebp - 0x78], eax
lea eax, [ebp - 0x78]
call fcn.00401929
mov edx, dword [ebp - 0xc4]
mov ecx, dword [ebp - 0xc0]
lea eax, [ebp - 0x78]
call fcn.00401929
mov edx, dword [0x438360]
mov ecx, dword [0x438364]
lea eax, [ebp - 0x78]
call fcn.00401929
mov eax, dword [ebp - 0x78]
lea ecx, [ebp - 0xe4]
mov edx, eax
mov dword [ebp - 0xbc], eax
mov eax, dword [ebp - 0x74]
mov dword [ebp - 0xb8], eax
call fcn.00402c28
mov edx, dword [ebp - 0xbc]
mov ecx, dword [ebp - 0xb8]
lea eax, [ebp - 0xe4]
call fcn.00401929
lea ecx, [ebp - 0xbc]
call fcn.004022ff
lea ecx, [ebp - 0xc4]
call fcn.004022ff
mov eax, dword [ebp - 0x168]
cmp byte [0x43f718], 0
mov dword [ebp - 0xdc], 0
mov dword [ebp - 0xd8], 0
mov dword [ebp - 0xd4], 0
mov eax, dword [eax]
mov dword [ebp - 0xd0], 0
mov dword [ebp - 0xcc], 0
mov dword [ebp - 0xc8], 0
mov dword [ebp - 0xc4], 0
mov dword [ebp - 0xc0], 0
jne 0x4204c0
mov eax, dword [eax]
xor ebx, ebx
dec eax
mov dword [ebp - 0x160], eax
cmp dword [ebp - 0x160], ebx
jge 0x420309
lea ecx, [ebp - 0xc4]
call fcn.004042b3
lea ecx, [ebp - 0xcc]
call fcn.004022ff
lea ecx, [ebp - 0xd4]
call fcn.004022ff
lea ecx, [ebp - 0xdc]
call fcn.004022ff
lea ecx, [ebp - 0xe4]
mov edx, 2
call fcn.00402c28
mov edx, dword [0x438360]
mov ecx, dword [0x438364]
lea eax, [ebp - 0xe4]
call fcn.00401929
jmp 0x4204c0
mov eax, dword [ebp - 0x168]
imul esi, ebx, 0x14
mov eax, dword [eax]
mov edx, dword [eax + 4]
add edx, esi
cmp byte [0x43f718], 0
mov eax, edx
mov edx, dword [edx + 4]
jne 0x4204c0
test edx, edx
je 0x4204ad
mov edx, dword [eax + 0xc]
mov eax, dword [eax + 8]
lea ecx, [ebp - 0xcc]
mov dword [esp], eax
mov dword [esp + 4], edx
call fcn.004033f0
lea ecx, [ebp - 0xc4]
push eax
push eax
mov eax, dword [ebp - 0x168]
mov eax, dword [eax]
add esi, dword [eax + 4]
mov eax, dword [esi + 0x10]
mov edx, dword [esi + 0x14]
xor esi, esi
mov dword [esp], eax
mov dword [esp + 4], edx
call fcn.00404459
push eax
push eax
mov eax, dword [ebp - 0xc4]
mov dword [ebp - 0x170], eax
cmp dword [ebp - 0x170], esi
jle 0x4204ad
mov eax, dword [ebp - 0xc0]
mov edx, dword [ebp - 0xc8]
lea ecx, [ebp - 0xdc]
mov dword [ebp - 0xbc], 0
mov dword [ebp - 0xb8], 0
mov dword [ebp - 0x178], eax
mov eax, dword [ebp - 0xcc]
mov dword [esp + 4], edx
mov dword [esp], eax
call fcn.004033f0
lea ecx, [ebp - 0xd4]
push eax
push eax
mov eax, dword [ebp - 0x178]
mov edx, dword [eax + esi*8 + 8]
mov eax, dword [eax + esi*8 + 4]
inc esi
mov dword [esp], eax
mov dword [esp + 4], edx
call fcn.004033f0
mov ecx, dword [ebp - 0xd4]
add ecx, dword [ebp - 0xdc]
mov dword [ebp - 0x78], 0
push eax
add ecx, 4
push eax
mov dword [ebp - 0x74], 0
call fcn.00402ad2
mov ecx, dword [ebp - 0xd8]
mov dword [ebp - 0x74], edx
mov edx, dword [ebp - 0xdc]
mov dword [ebp - 0x78], eax
lea eax, [ebp - 0x78]
call fcn.00401929
mov edx, dword [0x438320]
mov ecx, dword [0x438324]
lea eax, [ebp - 0x78]
call fcn.00401929
mov edx, dword [ebp - 0xd4]
mov ecx, dword [ebp - 0xd0]
lea eax, [ebp - 0x78]
call fcn.00401929
mov edx, dword [0x438360]
mov ecx, dword [0x438364]
lea eax, [ebp - 0x78]
call fcn.00401929
mov eax, dword [ebp - 0x78]
lea ecx, [ebp - 0xe4]
mov dword [ebp - 0xbc], eax
mov edx, eax
mov eax, dword [ebp - 0x74]
mov dword [ebp - 0xb8], eax
call fcn.00402c28
mov ecx, dword [ebp - 0xb8]
mov edx, dword [ebp - 0xbc]
lea eax, [ebp - 0xe4]
call fcn.00401929
lea ecx, [ebp - 0xbc]
call fcn.004022ff
jmp 0x420380
inc ebx
jmp 0x4202a9
cmp byte [0x43f718], 0
je 0x421709
mov eax, dword [ebp - 0xe4]
cmp byte [0x43f718], 0
mov dword [ebp - 0x134], eax
mov eax, dword [ebp - 0xe0]
mov dword [ebp - 0x130], eax
jne 0x41fa4f
mov eax, dword [ebp - 0x134]
mov edx, dword [ebp - 0x130]
mov dword [esp + 8], 2
mov dword [esp], eax
mov dword [esp + 4], edx
mov ecx, dword [edi]
call fcn.0041d789
sub esp, 0xc
cmp byte [0x43f718], 0
jne 0x41fa4f
cmp dword [ebp - 0x13c], 0
jg 0x420555
cmp dword [ebp - 0x174], 0
jg 0x420569
cmp byte [ebp - 0x16c], 0
setne dl
cmp byte [ebp - 0x16c], 7
setne al
and dl, al
mov byte [ebp - 0x168], dl
je 0x42059c
mov al, byte [edi + 0x94]
mov byte [ebp - 0x168], al
jmp 0x42059c
lea eax, [ebp - 0x78]
mov edx, 0x38
call fcn.00401950
mov eax, dword [pe_dos_header]
ud2
mov eax, dword [ebp - 0x174]
mov dword [esp + 8], 2
mov dword [esp], eax
mov eax, dword [ebp - 0x194]
mov dword [esp + 4], eax
mov ecx, dword [edi]
call fcn.0041d789
sub esp, 0xc
cmp byte [0x43f718], 0
je 0x420529
jmp 0x41fa4f
mov dword [ebp - 0x14c], 0
lea ecx, [ebp - 0x14c]
mov dword [ebp - 0x12c], 0
mov dword [ebp - 0x128], 0
call fcn.0040b7b3
mov edx, 4
mov ecx, 0x20
call fcn.00402761
xor ecx, ecx
mov dword [ebp - 0x12c], 0
mov dword [ebp - 0x14c], eax
mov dword [ebp - 0x128], 0x42db10
call fcn.0041efa8
mov bl, byte [0x43f718]
mov edx, eax
test bl, bl
jne 0x4216f3
mov eax, dword [ebp - 0x14c]
lea ecx, [eax + 0x10]
call fcn.0040ab98
mov edx, dword [edi + 0x5c]
mov dword [esp + 4], 0xf4240
mov dword [esp], 2
mov ecx, dword [edi]
call fcn.0041ec6d
cmp byte [0x43f718], 0
push esi
push esi
jne 0x4216f3
mov dword [esp], eax
lea ecx, [ebp - 0x12c]
mov dword [esp + 4], edx
call fcn.00402a05
mov esi, dword [ebp - 0x12c]
push ecx
push ecx
test esi, esi
je 0x42069d
mov eax, dword [ebp - 0x12c]
mov edx, dword [ebp - 0x128]
mov dword [ebp - 0x160], eax
mov eax, dword [0x438360]
mov dword [ebp - 0x15c], edx
mov edx, dword [0x438364]
mov dword [esp], eax
mov eax, dword [ebp - 0x160]
mov dword [esp + 4], edx
mov edx, dword [ebp - 0x15c]
call fcn.0040a453
test al, al
je 0x4206dc
jmp 0x420b31
mov ecx, edi
call fcn.0040b72c
cmp byte [0x43f718], 0
jne 0x4216f3
mov edx, dword [0x43828c]
mov eax, dword [0x438288]
mov dword [esp + 4], edx
mov dword [esp], eax
call fcn.0040b7df
cmp byte [0x43f718], 0
push edx
push edx
je 0x420b31
jmp 0x4216f3
test bl, bl
je 0x420773
mov dword [ebp - 0x78], 0
mov eax, dword [ebp - 0x128]
xor ebx, ebx
mov dword [ebp - 0xc4], 0
mov dword [ebp - 0xbc], 0
mov dword [ebp - 0xb8], 0
mov dword [ebp - 0x74], 0
mov dword [ebp - 0xc0], 0x42db10
cmp esi, ebx
jle 0x42072d
cmp byte [eax + ebx + 4], 0x3a
jne 0x420770
lea eax, [ebp - 0xc4]
mov edx, dword [ebp - 0x15c]
mov dword [esp + 0x10], ebx
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x160]
mov dword [esp + 0xc], 0
mov dword [esp], eax
mov dword [esp + 4], edx
call fcn.00404904
sub esp, 0x14
cmp byte [0x43f718], 0
je 0x4209d6
jmp 0x420aff
inc ebx
jmp 0x420722
mov eax, dword [0x438280]
mov edx, dword [0x438284]
mov dword [esp + 0x10], 0
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x160]
mov dword [esp + 0xc], edx
mov edx, dword [ebp - 0x15c]
mov dword [esp], eax
mov dword [esp + 4], edx
call fcn.00404a0d
sub esp, 0x14
cmp byte [0x43f718], 0
mov ebx, eax
jne 0x4216f3
test eax, eax
jle 0x42080e
mov eax, dword [0x4381dc]
mov edx, dword [0x4381e0]
mov dword [esp + 0x10], ebx
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x12c]
mov dword [esp + 0xc], edx
mov edx, dword [ebp - 0x128]
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [ebp - 0x160], eax
mov dword [ebp - 0x15c], edx
call fcn.00404a0d
sub esp, 0x14
cmp byte [0x43f718], 0
mov esi, eax
je 0x4208b7
jmp 0x4216f3
lea ecx, [esi + 0x18]
mov dword [ebp - 0x78], 0
mov dword [ebp - 0xbc], 0
mov dword [ebp - 0xb8], 0
mov dword [ebp - 0x74], 0
call fcn.00402ad2
mov ecx, dword [0x43827c]
mov dword [ebp - 0x74], edx
mov edx, dword [0x438278]
mov dword [ebp - 0x78], eax
lea eax, [ebp - 0x78]
call fcn.00401929
mov edx, dword [ebp - 0x12c]
mov ecx, dword [ebp - 0x128]
lea eax, [ebp - 0x78]
call fcn.00401929
mov ecx, dword [0x438274]
mov edx, dword [0x438270]
lea eax, [ebp - 0x78]
call fcn.00401929
mov eax, dword [ebp - 0x78]
mov edx, dword [ebp - 0x74]
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [ebp - 0xbc], eax
mov dword [ebp - 0xb8], edx
call fcn.0040b7df
lea ecx, [ebp - 0xbc]
push eax
push eax
call fcn.004022ff
cmp byte [0x43f718], 0
je 0x4207bc
jmp 0x4216f3
test eax, eax
jg 0x420900
mov eax, dword [0x4381fc]
mov edx, dword [0x438200]
mov dword [esp + 0x10], ebx
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x160]
mov dword [esp + 0xc], edx
mov edx, dword [ebp - 0x15c]
mov dword [esp], eax
mov dword [esp + 4], edx
call fcn.00404a0d
sub esp, 0x14
mov esi, eax
test eax, eax
jle 0x42093c
mov eax, dword [0x4381fc]
mov edx, dword [0x438200]
jmp 0x42090b
mov eax, dword [0x4381dc]
mov edx, dword [0x4381e0]
mov dword [esp], eax
mov ecx, dword [ebp - 0x14c]
mov dword [esp + 4], edx
call fcn.00402a05
push eax
push eax
mov eax, dword [ebp - 0x12c]
mov dword [ebp - 0x160], eax
mov eax, dword [ebp - 0x128]
mov dword [ebp - 0x16c], eax
lea eax, [ebx + esi]
jmp 0x420978
mov eax, dword [0x438268]
mov edx, dword [0x43826c]
mov dword [esp], eax
mov dword [esp + 4], edx
call fcn.0040b7df
cmp byte [0x43f718], 0
push eax
push eax
je 0x4208f3
jmp 0x4216f3
mov esi, dword [ebp - 0x16c]
mov dl, byte [esi + eax + 4]
inc eax
lea esi, [edx - 9]
mov ecx, esi
cmp cl, 4
ja 0x420984
mov ebx, eax
cmp dword [ebp - 0x160], eax
jg 0x420963
jmp 0x420989
cmp dl, 0x20
je 0x420978
cmp byte [0x43f718], 0
jne 0x4216f3
mov eax, ebx
mov edx, 1
call fcn.00409fe4
mov dword [esp], eax
mov eax, dword [ebp - 0x12c]
mov dword [esp + 4], edx
mov edx, dword [ebp - 0x128]
call fcn.00409f80
mov ebx, dword [ebp - 0x14c]
mov dword [esp], eax
mov dword [esp + 4], edx
lea ecx, [ebx + 8]
call fcn.00402a05
push eax
push eax
jmp 0x420b2a
test ebx, ebx
je 0x4209e9
mov eax, dword [ebp - 0x128]
cmp byte [eax + ebx + 4], 0x3a
jne 0x420a10
jmp 0x420a36
mov eax, dword [0x438260]
mov edx, dword [0x438264]
mov dword [esp], eax
mov dword [esp + 4], edx
call fcn.0040b7df
cmp byte [0x43f718], 0
push eax
push eax
je 0x4209da
jmp 0x420aff
mov eax, dword [0x438260]
mov edx, dword [0x438264]
mov dword [esp], eax
mov dword [esp + 4], edx
call fcn.0040b7df
cmp byte [0x43f718], 0
push esi
push esi
jne 0x420aff
lea eax, [ebx + 1]
mov edx, 1
call fcn.00409fe4
mov dword [esp], eax
mov eax, dword [ebp - 0x12c]
mov dword [esp + 4], edx
mov edx, dword [ebp - 0x128]
call fcn.00409f80
mov dword [esp + 0x10], 0x438240
mov dword [esp + 0xc], 1
mov dword [esp + 8], 1
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [ebp - 0xbc], eax
mov dword [ebp - 0xb8], edx
call fcn.0041d934
sub esp, 0x14
cmp byte [0x43f718], 0
mov dword [ebp - 0x78], eax
mov dword [ebp - 0x74], edx
jne 0x420aff
mov ecx, dword [ebp - 0x14c]
mov ecx, dword [ecx + 0x10]
mov dword [esp + 8], eax
mov dword [esp + 0xc], edx
mov eax, dword [ebp - 0xc4]
mov edx, dword [ebp - 0xc0]
mov dword [esp], eax
mov dword [esp + 4], edx
call fcn.0040ad87
sub esp, 0x10
cmp byte [0x43f718], 0
jne 0x420aff
mov eax, dword [ebp - 0x14c]
mov eax, dword [eax + 0x10]
mov eax, dword [eax]
cmp dword [eax + 8], 0x2710
jle 0x420aff
mov eax, dword [0x43821c]
mov edx, dword [0x438220]
mov dword [esp], eax
mov dword [esp + 4], edx
call fcn.0040b7df
push ebx
push ebx
lea ecx, [ebp - 0x78]
call fcn.004022ff
lea ecx, [ebp - 0xbc]
call fcn.004022ff
lea ecx, [ebp - 0xc4]
call fcn.004022ff
cmp byte [0x43f718], 0
jne 0x4216f3
mov bl, 1
jmp 0x420613
mov eax, dword [0x42d4ac]
mov edx, dword [0x42d4b0]
mov dword [esp], eax
mov dword [esp + 4], edx
call fcn.0040b29a
cmp byte [0x43f718], 0
mov ebx, eax
push ecx
push ecx
jne 0x4216f3
mov esi, dword [ebp - 0x14c]
mov eax, dword [esi + 0x1c]
call fcn.00401e0e
test al, al
je 0x420b73
mov ecx, dword [esi + 0x1c]
call fcn.0040246e
cmp byte [ebp - 0x168], 0
mov dword [esi + 0x1c], ebx
je 0x4216f3
mov ecx, dword [ebp - 0x14c]
call fcn.0040b8f3
cmp byte [0x43f718], 0
jne 0x4216f3
cmp eax, 0xcc
je 0x4216f3
mov eax, dword [ebp - 0x14c]
lea ecx, [edi + 0x90]
mov edx, dword [eax + 0x1c]
call fcn.0040b083
mov eax, dword [ebp - 0x14c]
mov edx, 8
mov ebx, dword [eax + 0x10]
mov esi, dword [eax + 4]
mov dword [ebp - 0x160], ebx
mov ebx, dword [eax]
lea eax, [ebp - 0x148]
mov dword [edi + 0x70], 0
mov dword [edi + 0x74], 0
mov dword [edi + 0x78], 0
mov dword [edi + 0x7c], 0
mov dword [edi + 0x80], 0
mov dword [edi + 0x84], 0
mov dword [ebp - 0x124], 0
mov dword [ebp - 0x120], 0
mov dword [ebp - 0x11c], 0
mov dword [ebp - 0x118], 0
mov dword [ebp - 0x114], 0
mov dword [ebp - 0x110], 0
mov dword [ebp - 0x10c], 0
mov dword [ebp - 0x108], 0
mov dword [ebp - 0x104], 0
mov dword [ebp - 0x100], 0
mov dword [ebp - 0xfc], 0
mov dword [ebp - 0xf8], 0
call fcn.00401950
mov edx, dword [ebp - 0x144]
mov eax, dword [ebp - 0x148]
mov ecx, 1
mov dword [ebp - 0x124], 1
mov dword [edi + 0x8c], edx
mov edx, 8
mov dword [edi + 0x88], eax
mov dword [esp], 4
call fcn.004048db
mov ecx, dword [ebp - 0x160]
push edx
mov dword [ebp - 0x120], eax
mov edx, dword [ebp - 0x120]
mov dword [eax + 4], 0
mov dword [eax + 8], 0x42db10
mov eax, dword [ebp - 0x124]
mov dword [esp + 0xc], edx
mov edx, dword [0x438218]
mov dword [esp + 8], eax
mov eax, dword [0x438214]
mov dword [esp + 4], edx
mov dword [esp], eax
call fcn.0040af4f
sub esp, 0x10
cmp byte [0x43f718], 0
mov dword [ebp - 0x11c], eax
mov dword [ebp - 0x118], edx
jne 0x4216b1
mov dword [esp], eax
mov dword [esp + 4], edx
call fcn.0040af17
cmp byte [0x43f718], 0
mov dword [ebp - 0x168], eax
push ecx
mov dword [ebp - 0x164], edx
push ecx
mov dword [ebp - 0x114], eax
mov dword [ebp - 0x110], edx
jne 0x4216b1
mov eax, dword [0x43820c]
mov edx, dword [0x438210]
mov dword [esp], eax
mov eax, dword [ebp - 0x168]
mov dword [esp + 4], edx
mov edx, dword [ebp - 0x164]
call fcn.0040a453
test al, al
jne 0x420e7e
mov dword [esp], 4
mov edx, 8
mov ecx, 1
mov dword [ebp - 0xf4], 0
mov dword [ebp - 0xf0], 0
mov dword [ebp - 0xe8], 0
mov dword [ebp - 0xe4], 0
mov dword [ebp - 0xe0], 0
mov dword [ebp - 0xec], 1
call fcn.004048db
mov ecx, dword [ebp - 0x160]
push edx
mov dword [ebp - 0xe8], eax
mov dword [eax + 8], 0x42db10
mov edx, dword [ebp - 0xe8]
mov dword [eax + 4], 0
mov eax, dword [ebp - 0xec]
mov dword [esp + 0xc], edx
mov edx, dword [0x438208]
mov dword [esp + 8], eax
mov eax, dword [0x438204]
mov dword [esp + 4], edx
mov dword [esp], eax
call fcn.0040af4f
sub esp, 0x10
cmp byte [0x43f718], 0
mov dword [ebp - 0xf4], eax
mov dword [ebp - 0xf0], edx
je 0x421096
jmp 0x4215a5
cmp dword [ebp - 0xc4], 0
jne 0x420ec8
mov eax, dword [0x4381bc]
mov edx, dword [0x4381c0]
mov dword [esp], eax
mov dword [esp + 4], edx
call fcn.0040b7df
cmp byte [0x43f718], 0
push eax
push eax
je 0x420ec8
lea ecx, [ebp - 0xc4]
call fcn.004022ff
cmp byte [0x43f718], 0
jne 0x4215c6
mov dword [esp + 4], 0xf4240
or edx, 0xffffffff
mov dword [esp], 2
mov ecx, dword [edi]
mov dword [ebp - 0xc4], 0
mov dword [ebp - 0xc0], 0
call fcn.0041ec6d
cmp byte [0x43f718], 0
mov dword [ebp - 0xc4], eax
push ecx
mov dword [ebp - 0xc0], edx
push ecx
je 0x420e37
jmp 0x420e66
xor esi, esi
xor ebx, ebx
jmp 0x420ef4
mov eax, dword [ebp - 0xc0]
movzx eax, byte [eax + esi + 4]
mov edx, eax
cmp al, 0x46
jg 0x420f0d
cmp al, 0x40
jg 0x420f1d
cmp al, 0x39
jg 0x420f03
cmp al, 0x2f
jle 0x420f25
shl ebx, 4
sub eax, 0x30
or ebx, eax
inc esi
mov ecx, dword [ebp - 0xc4]
cmp ecx, esi
jg 0x420ece
jmp 0x420fba
cmp al, 0x3b
je 0x420fba
jmp 0x420f25
sub edx, 0x61
cmp dl, 5
ja 0x420f25
shl ebx, 4
sub eax, 0x57
jmp 0x420ef1
shl ebx, 4
sub eax, 0x37
jmp 0x420ef1
add ecx, 0x14
mov dword [ebp - 0x78], 0
mov dword [ebp - 0xbc], 0
mov dword [ebp - 0xb8], 0
mov dword [ebp - 0x74], 0
call fcn.00402ad2
mov ecx, dword [0x4381c8]
mov dword [ebp - 0x74], edx
mov edx, dword [0x4381c4]
mov dword [ebp - 0x78], eax
lea eax, [ebp - 0x78]
call fcn.00401929
mov ecx, dword [ebp - 0xc0]
mov edx, dword [ebp - 0xc4]
lea eax, [ebp - 0x78]
call fcn.00401929
mov eax, dword [ebp - 0x78]
mov edx, dword [ebp - 0x74]
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [ebp - 0xbc], eax
mov dword [ebp - 0xb8], edx
call fcn.0040b7df
lea ecx, [ebp - 0xbc]
push eax
push eax
call fcn.004022ff
cmp byte [0x43f718], 0
je 0x420ef3
jmp 0x420e66
mov eax, dword [edi + 0x5c]
test ebx, ebx
jle 0x420fe5
mov dword [esp + 4], 1
mov edx, ebx
mov ecx, edi
mov dword [esp], eax
call fcn.0040b96b
cmp byte [0x43f718], 0
push esi
push esi
je 0x42101b
jmp 0x420e66
mov dword [esp + 4], 0
mov ecx, edi
mov edx, 2
mov dword [esp], eax
call fcn.0040b96b
cmp byte [0x43f718], 0
push ecx
push ecx
jne 0x420e66
lea ecx, [ebp - 0xc4]
call fcn.004022ff
jmp 0x4215c6
cmp ebx, eax
jne 0x42106f
mov dword [esp + 4], 0
mov eax, dword [edi + 0x5c]
mov edx, 2
mov ecx, edi
mov dword [esp], eax
call fcn.0040b96b
push edx
push edx
cmp eax, 2
je 0x420e66
cmp byte [0x43f718], 0
jne 0x420e66
mov eax, dword [0x4381bc]
mov edx, dword [0x4381c0]
mov dword [esp], eax
mov dword [esp + 4], edx
call fcn.0040b7df
push ebx
push ebx
jmp 0x420e66
mov eax, dword [0x4381bc]
mov edx, dword [0x4381c0]
mov dword [esp], eax
mov dword [esp + 4], edx
call fcn.0040b7df
cmp byte [0x43f718], 0
push esi
push esi
je 0x42101f
jmp 0x420e66
mov dword [esp], eax
mov dword [esp + 4], edx
call fcn.0040af17
cmp byte [0x43f718], 0
mov dword [ebp - 0xe4], eax
push ecx
mov dword [ebp - 0xe0], edx
push ecx
jne 0x4215a5
cmp dword [ebp - 0xe4], 0
jne 0x42116a
mov eax, dword [0x4381fc]
mov edx, dword [0x438200]
mov dword [ebp - 0xdc], 0
mov dword [ebp - 0xd8], 0
mov dword [esp], eax
mov eax, ebx
mov dword [esp + 4], edx
mov edx, esi
mov dword [ebp - 0xd4], 0
mov dword [ebp - 0xd0], 0
mov dword [ebp - 0xcc], 0
mov dword [ebp - 0xc8], 0
mov dword [ebp - 0xc4], 0
mov dword [ebp - 0xc0], 0
mov dword [ebp - 0xbc], 0
mov dword [ebp - 0xb8], 0
mov dword [ebp - 0x78], 0
mov dword [ebp - 0x74], 0
call fcn.0040a453
mov byte [ebp - 0x168], al
test al, al
je 0x421393
jmp 0x421473
mov eax, dword [ebp - 0xf4]
mov edx, dword [ebp - 0xf0]
mov dword [ebp - 0xd4], 0
mov dword [ebp - 0xd0], 0
mov dword [esp], eax
mov dword [esp + 4], edx
call fcn.0040af17
cmp byte [0x43f718], 0
mov dword [ebp - 0xd4], eax
push ebx
mov dword [ebp - 0xd0], edx
push ebx
jne 0x421383
mov dword [esp], eax
mov dword [esp + 4], edx
call fcn.0040505e
cmp byte [0x43f718], 0
mov ebx, eax
push ecx
push ecx
jne 0x421383
mov dword [edi + 0x70], eax
sar eax, 0x1f
mov dword [edi + 0x74], eax
test ebx, ebx
jle 0x421383
mov dword [esp + 4], 1
mov eax, dword [edi + 0x5c]
mov edx, ebx
mov ecx, edi
mov dword [esp], eax
call fcn.0040b96b
cmp byte [0x43f718], 0
mov esi, eax
push edx
push edx
jne 0x421383
test eax, eax
jne 0x421246
mov ecx, edi
call fcn.0040b72c
cmp byte [0x43f718], 0
jne 0x421383
mov eax, dword [0x4381f4]
mov edx, dword [0x4381f8]
mov dword [esp], eax
mov dword [esp + 4], edx
call fcn.0040b7df
cmp byte [0x43f718], 0
push eax
push eax
je 0x42124e
jmp 0x421383
cmp ebx, eax
je 0x421383
mov ecx, ebx
mov dword [ebp - 0xcc], 0
mov dword [ebp - 0xc8], 0
mov dword [ebp - 0xc4], 0
mov dword [ebp - 0xc0], 0
mov dword [ebp - 0xbc], 0
mov dword [ebp - 0xb8], 0
mov dword [ebp - 0x78], 0
mov dword [ebp - 0x74], 0
call fcn.00403772
cmp byte [0x43f718], 0
mov dword [ebp - 0xcc], eax
mov dword [ebp - 0xc8], edx
jne 0x421362
mov ecx, esi
call fcn.00403772
cmp byte [0x43f718], 0
mov dword [ebp - 0xc4], eax
mov dword [ebp - 0xc0], edx
jne 0x421362
mov ecx, dword [ebp - 0xc4]
add ecx, dword [ebp - 0xcc]
add ecx, 0x3c
call fcn.00402ad2
mov ecx, dword [0x4381f0]
mov dword [ebp - 0x74], edx
mov edx, dword [0x4381ec]
mov dword [ebp - 0x78], eax
lea eax, [ebp - 0x78]
call fcn.00401929
mov edx, dword [ebp - 0xcc]
mov ecx, dword [ebp - 0xc8]
lea eax, [ebp - 0x78]
call fcn.00401929
mov edx, dword [0x4381e4]
mov ecx, dword [0x4381e8]
lea eax, [ebp - 0x78]
call fcn.00401929
mov ecx, dword [ebp - 0xc0]
mov edx, dword [ebp - 0xc4]
lea eax, [ebp - 0x78]
call fcn.00401929
mov eax, dword [ebp - 0x78]
mov edx, dword [ebp - 0x74]
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [ebp - 0xbc], eax
mov dword [ebp - 0xb8], edx
call fcn.0040b7df
push ecx
push ecx
lea ecx, [ebp - 0xbc]
call fcn.004022ff
lea ecx, [ebp - 0xc4]
call fcn.004022ff
lea ecx, [ebp - 0xcc]
call fcn.004022ff
lea ecx, [ebp - 0xd4]
call fcn.004022ff
jmp 0x4215a5
mov eax, dword [0x4381dc]
mov edx, dword [0x4381e0]
mov dword [esp], eax
mov eax, ebx
mov dword [esp + 4], edx
mov edx, esi
call fcn.0040a453
mov byte [ebp - 0x168], al
test al, al
je 0x421473
mov dword [esp], 4
mov edx, 8
mov ecx, 1
mov dword [ebp - 0xdc], 1
call fcn.004048db
mov ecx, dword [ebp - 0x160]
push edx
mov dword [ebp - 0xd8], eax
mov dword [eax + 8], 0x42db10
mov edx, dword [ebp - 0xd8]
mov dword [eax + 4], 0
mov eax, dword [ebp - 0xdc]
mov dword [esp + 0xc], edx
mov edx, dword [0x4381d8]
mov dword [esp + 8], eax
mov eax, dword [0x4381d4]
mov dword [esp + 4], edx
mov dword [esp], eax
call fcn.0040af4f
sub esp, 0x10
cmp byte [0x43f718], 0
mov dword [ebp - 0xd4], eax
mov dword [ebp - 0xd0], edx
jne 0x421566
mov dword [esp], eax
mov dword [esp + 4], edx
call fcn.0040af17
cmp byte [0x43f718], 0
mov dword [ebp - 0xcc], eax
push esi
mov dword [ebp - 0xc8], edx
push esi
jne 0x421566
cmp dword [ebp - 0xcc], 0
sete byte [ebp - 0x168]
mov dword [esp], 4
mov edx, 8
mov ecx, 1
mov dword [ebp - 0xc4], 1
call fcn.004048db
mov ecx, dword [ebp - 0x160]
push ebx
mov dword [ebp - 0xc0], eax
mov dword [eax + 8], 0x42db10
mov edx, dword [ebp - 0xc0]
mov dword [eax + 4], 0
mov eax, dword [ebp - 0xc4]
mov dword [esp + 0xc], edx
mov edx, dword [0x4381d8]
mov dword [esp + 8], eax
mov eax, dword [0x4381d4]
mov dword [esp + 4], edx
mov dword [esp], eax
call fcn.0040af4f
sub esp, 0x10
cmp byte [0x43f718], 0
mov dword [ebp - 0xbc], eax
mov dword [ebp - 0xb8], edx
jne 0x421566
mov dword [esp], eax
mov dword [esp + 4], edx
call fcn.0040af17
cmp byte [0x43f718], 0
mov dword [ebp - 0x78], eax
push ecx
mov dword [ebp - 0x74], edx
push ecx
jne 0x421566
mov ecx, dword [0x4381cc]
mov ebx, dword [0x4381d0]
mov dword [esp], ecx
mov dword [esp + 4], ebx
call fcn.0040a453
test al, al
jne 0x421533
cmp byte [ebp - 0x168], 0
je 0x421566
mov dword [esp + 4], 1
mov eax, dword [edi + 0x5c]
mov edx, 0xfa0
mov ecx, edi
mov dword [esp], eax
call fcn.0040b96b
cmp byte [0x43f718], 0
push esi
push esi
jne 0x421566
cmp eax, 0xfa0
je 0x421533
mov ecx, edi
call fcn.0040b72c
lea ecx, [ebp - 0x78]
call fcn.004022ff
lea ecx, [ebp - 0xbc]
call fcn.00405d95
lea ecx, [ebp - 0xc4]
call fcn.004042b3
lea ecx, [ebp - 0xcc]
call fcn.004022ff
lea ecx, [ebp - 0xd4]
call fcn.00405d95
lea ecx, [ebp - 0xdc]
call fcn.004042b3
lea ecx, [ebp - 0xe4]
call fcn.004022ff
lea ecx, [ebp - 0xec]
call fcn.004042b3
lea ecx, [ebp - 0xf4]
call fcn.00405d95
cmp byte [0x43f718], 0
jne 0x4216b1
mov eax, dword [edi + 0x90]
xor edx, edx
mov ecx, eax
call dword [eax + 0xc]
cmp byte [0x43f718], 0
jne 0x4216b1
mov dword [esp], 4
mov edx, 8
mov ecx, 1
mov dword [ebp - 0x10c], 1
call fcn.004048db
mov ecx, dword [ebp - 0x160]
push ebx
mov dword [ebp - 0x108], eax
mov edx, dword [ebp - 0x108]
mov dword [eax + 4], 0
mov dword [eax + 8], 0x42db10
mov eax, dword [ebp - 0x10c]
mov dword [esp + 0xc], edx
mov edx, dword [0x4381d8]
mov dword [esp + 8], eax
mov eax, dword [0x4381d4]
mov dword [esp + 4], edx
mov dword [esp], eax
call fcn.0040af4f
sub esp, 0x10
cmp byte [0x43f718], 0
mov dword [ebp - 0x104], eax
mov dword [ebp - 0x100], edx
jne 0x4216b1
mov dword [esp], eax
mov dword [esp + 4], edx
call fcn.0040af17
cmp byte [0x43f718], 0
mov dword [ebp - 0xfc], eax
push ecx
mov dword [ebp - 0xf8], edx
push ecx
jne 0x4216b1
mov ecx, dword [0x4381cc]
mov ebx, dword [0x4381d0]
mov dword [esp], ecx
mov dword [esp + 4], ebx
call fcn.0040a453
test al, al
je 0x4216b1
mov ecx, edi
call fcn.0040b72c
lea ecx, [ebp - 0xfc]
call fcn.004022ff
lea ecx, [ebp - 0x104]
call fcn.00405d95
lea ecx, [ebp - 0x10c]
call fcn.004042b3
lea ecx, [ebp - 0x114]
call fcn.004022ff
lea ecx, [ebp - 0x11c]
call fcn.00405d95
lea ecx, [ebp - 0x124]
call fcn.004042b3
lea ecx, [ebp - 0x12c]
call fcn.004022ff
mov eax, dword [ebp - 0x14c]
jmp 0x4217dd
test al, al
je 0x42171d
mov edx, 0x2f
lea eax, [ebp - 0xe4]
call fcn.00402caf
mov edx, dword [ebx + 0x28]
lea ecx, [ebp - 0xe4]
call fcn.00402c28
mov ecx, dword [ebx + 0x2c]
mov edx, dword [ebx + 0x28]
lea eax, [ebp - 0xe4]
call fcn.00401929
mov ecx, dword [ebx + 0x30]
test ecx, ecx
jle 0x41fd5a
inc ecx
mov dword [ebp - 0x78], 0
mov dword [ebp - 0xbc], 0
mov dword [ebp - 0xb8], 0
mov dword [ebp - 0x74], 0
call fcn.00402ad2
mov ecx, dword [0x43835c]
mov dword [ebp - 0x74], edx
mov edx, dword [0x438358]
mov dword [ebp - 0x78], eax
lea eax, [ebp - 0x78]
call fcn.00401929
mov edx, dword [ebx + 0x30]
mov ecx, dword [ebx + 0x34]
lea eax, [ebp - 0x78]
call fcn.00401929
mov eax, dword [ebp - 0x78]
lea ecx, [ebp - 0xe4]
mov dword [ebp - 0xbc], eax
mov edx, eax
mov eax, dword [ebp - 0x74]
mov dword [ebp - 0xb8], eax
call fcn.00402c28
mov ecx, dword [ebp - 0xb8]
mov edx, dword [ebp - 0xbc]
lea eax, [ebp - 0xe4]
call fcn.00401929
lea ecx, [ebp - 0xbc]
call fcn.004022ff
jmp 0x41fd5a
lea ecx, [ebp - 0x134]
mov dword [ebp - 0x160], eax
call fcn.004022ff
lea ecx, [ebp - 0x13c]
call fcn.004042b3
lea ecx, [ebp - 0x150]
call fcn.0040ab6c
mov eax, dword [ebp - 0x160]
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret 0x14