Function at 0x40f018
Capabilities:
Check http status code

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x74
push esi
mov eax, dword [ebp + 8]
mov ecx, dword [eax]
mov dword [ebp - 0x48], ecx
lea edx, [ebp - 0x28]
mov dword [ebp - 0x2c], edx
mov eax, dword [ebp - 0x48]
xor ecx, ecx
mov cl, byte [eax + 2]
cmp ecx, 4
jne 0x40f05f
mov edx, dword [ebp - 0x48]
xor eax, eax
mov ax, word [edx + 0xe]
test eax, eax
je 0x40f055
mov ecx, dword [ebp - 0x48]
xor edx, edx
mov dx, word [ecx + 0xe]
cmp edx, 0x40
jle 0x40f05f
mov eax, 0x1770
jmp 0x410595
mov eax, dword [ebp - 0x48]
xor ecx, ecx
mov cl, byte [eax + 2]
cmp ecx, 2
je 0x40f079
mov edx, dword [ebp - 0x48]
xor eax, eax
mov al, byte [edx + 2]
cmp eax, 3
jne 0x40f0b6
mov ecx, dword [ebp - 0x48]
xor edx, edx
mov dx, word [ecx + 0xc]
mov eax, dword [ebp - 0x48]
xor ecx, ecx
mov cx, word [eax + 0xe]
add edx, ecx
cmp edx, 0xc8
jle 0x40f09f
mov eax, 6
jmp 0x410595
mov edx, dword [ebp - 0x48]
xor eax, eax
mov ax, word [edx + 0xe]
test eax, eax
jne 0x40f0b6
mov eax, 0x2716
jmp 0x410595
mov word [ebp - 0x50], 0
mov word [ebp - 0x24], 0
jmp 0x40f0d0
mov cx, word [ebp - 0x24]
add cx, 1
mov word [ebp - 0x24], cx
mov edx, dword [ebp - 0x24]
and edx, 0xffff
cmp edx, 0xf
jge 0x410590
mov eax, dword [ebp - 0x48]
xor ecx, ecx
mov cl, byte [eax + 2]
cmp ecx, 0xb
je 0x40f239
mov edx, dword [ebp - 0x48]
xor eax, eax
mov al, byte [edx + 3]
test eax, eax
je 0x40f239
mov byte [ebp - 0x54], 0
jmp 0x40f112
mov cl, byte [ebp - 0x54]
add cl, 1
mov byte [ebp - 0x54], cl
mov edx, dword [ebp - 0x54]
and edx, 0xff
cmp edx, 3
jge 0x40f144
mov eax, dword [ebp - 0x54]
and eax, 0xff
imul eax, eax, 0xe
mov ecx, dword [ebp + 0x10]
xor edx, edx
mov dx, word [eax + ecx]
mov eax, dword [ebp + 0xc]
and eax, 0xffff
cmp edx, eax
jne 0x40f142
jmp 0x40f144
jmp 0x40f109
mov ecx, dword [ebp - 0x54]
and ecx, 0xff
imul ecx, ecx, 0xe
mov edx, dword [ebp + 0x10]
mov eax, dword [ebp - 0x48]
mov ecx, dword [ecx + edx + 2]
cmp ecx, dword [eax + 4]
je 0x40f185
mov edx, dword [ebp + 0x10]
push edx
mov ax, word [ebp + 0xc]
push eax
mov ecx, dword [ebp + 8]
push ecx
call fcn.0040e112
add esp, 0xc
mov dword [ebp - 0x40], eax
cmp dword [ebp - 0x40], 0
je 0x40f185
mov eax, dword [ebp - 0x40]
jmp 0x410595
mov edx, dword [ebp - 0x54]
and edx, 0xff
imul edx, edx, 0xe
mov eax, dword [ebp + 8]
mov ecx, dword [ebp + 0x10]
mov edx, dword [edx + ecx + 6]
mov dword [eax + 0x1a], edx
mov eax, dword [ebp - 0x54]
and eax, 0xff
imul eax, eax, 0xe
mov ecx, dword [ebp + 8]
mov edx, dword [ebp + 0x10]
mov eax, dword [eax + edx + 0xa]
mov dword [ecx + 0x1e], eax
mov ecx, dword [ebp + 8]
mov word [ecx + 0x16], 0
mov edx, dword [ebp + 8]
mov word [edx + 0x26], 0
mov ax, word [ebp + 0xc]
push eax
mov ecx, dword [ebp + 8]
push ecx
call fcn.0041184d
add esp, 8
mov word [ebp - 0x30], 0
jmp 0x40f1ed
mov dx, word [ebp - 0x30]
add dx, 1
mov word [ebp - 0x30], dx
mov eax, dword [ebp - 0x30]
and eax, 0xffff
mov ecx, dword [ebp - 0x48]
xor edx, edx
mov dl, byte [ecx + 3]
cmp eax, edx
jge 0x40f239
mov eax, dword [ebp + 8]
mov cx, word [ebp - 0x30]
mov word [eax + 0x18], cx
mov dx, word [ebp + 0xc]
push edx
mov eax, dword [ebp + 8]
push eax
call fcn.004108ca
add esp, 8
mov dword [ebp - 0x40], eax
cmp dword [ebp - 0x40], 0
je 0x40f22e
mov eax, dword [ebp - 0x40]
jmp 0x410595
mov ecx, dword [ebp + 8]
mov word [ecx + 0x26], 1
jmp 0x40f1e1
lea edx, [ebp - 0x64]
push edx
mov eax, dword [ebp + 8]
push eax
call fcn.00410d3a
add esp, 8
mov ecx, dword [ebp + 8]
xor edx, edx
mov dx, word [ecx + 0x26]
test edx, edx
jne 0x40f28c
mov ax, word [ebp + 0xc]
push eax
mov ecx, dword [ebp + 8]
push ecx
call fcn.0041184d
add esp, 8
mov dx, word [ebp + 0xc]
push edx
mov eax, dword [ebp + 8]
push eax
call fcn.00411a29
add esp, 8
mov dword [ebp - 0x40], eax
cmp dword [ebp - 0x40], 0
je 0x40f28c
mov eax, dword [ebp - 0x40]
add eax, 0xa
jmp 0x410595
push 0x2a
mov cx, word [ebp + 0xc]
push ecx
mov edx, dword [ebp + 8]
push edx
call fcn.00410f62
add esp, 0xc
mov dword [ebp - 0x40], eax
cmp dword [ebp - 0x40], 0
je 0x40f2b3
mov eax, dword [ebp - 0x40]
add eax, 0x14
jmp 0x410595
mov word [ebp - 0x30], 0
jmp 0x40f2c7
mov ax, word [ebp - 0x30]
add ax, 1
mov word [ebp - 0x30], ax
mov ecx, dword [ebp - 0x30]
and ecx, 0xffff
cmp ecx, 0xa
jge 0x40f320
mov edx, dword [ebp - 0x30]
and edx, 0xffff
mov al, byte [edx + ebp - 0x64]
push eax
mov cx, word [ebp + 0xc]
push ecx
mov edx, dword [ebp + 8]
push edx
call fcn.00410f62
add esp, 0xc
mov dword [ebp - 0x40], eax
cmp dword [ebp - 0x40], 0
je 0x40f2ff
jmp 0x40f320
mov eax, dword [ebp - 0x30]
and eax, 0xffff
cmp eax, 3
jne 0x40f31e
mov cx, word [ebp + 0xc]
push ecx
push 0x2bc
call fcn.004117b0
add esp, 8
jmp 0x40f2bb
cmp dword [ebp - 0x40], 0
je 0x40f331
mov eax, dword [ebp - 0x40]
add eax, 0x1e
jmp 0x410595
mov edx, dword [ebp - 0x48]
xor eax, eax
mov al, byte [edx + 2]
cmp eax, 5
je 0x40f383
mov ecx, dword [ebp - 0x48]
xor edx, edx
mov dl, byte [ecx + 2]
cmp edx, 9
je 0x40f383
mov eax, dword [ebp - 0x48]
xor ecx, ecx
mov cl, byte [eax + 2]
cmp ecx, 0x14
je 0x40f383
mov edx, dword [ebp - 0x48]
xor eax, eax
mov al, byte [edx + 2]
cmp eax, 0x2d
je 0x40f383
mov ecx, dword [ebp - 0x48]
xor edx, edx
mov dl, byte [ecx + 2]
cmp edx, 0xb
je 0x40f383
mov eax, dword [ebp - 0x48]
xor ecx, ecx
mov cl, byte [eax + 2]
cmp ecx, 0x1e
jne 0x40f72d
mov word [ebp - 0x50], 0
mov edx, dword [ebp + 8]
mov eax, dword [edx]
xor ecx, ecx
mov cl, byte [eax + 2]
mov dword [ebp - 0x70], ecx
mov edx, dword [ebp - 0x70]
sub edx, 5
mov dword [ebp - 0x70], edx
cmp dword [ebp - 0x70], 0x28
ja case.0x40f3b4.4
mov ecx, dword [ebp - 0x70]
xor eax, eax
mov al, byte [ecx + 0x4105ae]
jmp dword [eax*4 + 0x41059a]
push 2
mov dx, word [ebp + 0xc]
push edx
mov eax, dword [ebp + 8]
push eax
call fcn.004111ca
add esp, 0xc
mov dword [ebp - 0x40], eax
cmp dword [ebp - 0x40], 0
je 0x40f3e2
mov eax, dword [ebp - 0x40]
add eax, 0x28
jmp 0x410595
push 4
mov cx, word [ebp + 0xc]
push ecx
mov edx, dword [ebp + 8]
push edx
call fcn.004111ca
add esp, 0xc
mov dword [ebp - 0x40], eax
cmp dword [ebp - 0x40], 0
je 0x40f409
mov eax, dword [ebp - 0x40]
add eax, 0x28
jmp 0x410595
push 1
mov ax, word [ebp + 0xc]
push eax
mov ecx, dword [ebp + 8]
push ecx
call fcn.004111ca
add esp, 0xc
mov dword [ebp - 0x40], eax
cmp dword [ebp - 0x40], 0
je 0x40f430
mov eax, dword [ebp - 0x40]
add eax, 0x28
jmp 0x410595
mov word [ebp - 0x50], 3
jmp case.0x40f3b4.4
push 2
mov dx, word [ebp + 0xc]
push edx
mov eax, dword [ebp + 8]
push eax
call fcn.004111ca
add esp, 0xc
mov dword [ebp - 0x40], eax
cmp dword [ebp - 0x40], 0
je 0x40f462
mov eax, dword [ebp - 0x40]
add eax, 0x28
jmp 0x410595
push 4
mov cx, word [ebp + 0xc]
push ecx
mov edx, dword [ebp + 8]
push edx
call fcn.004111ca
add esp, 0xc
mov dword [ebp - 0x40], eax
cmp dword [ebp - 0x40], 0
je 0x40f489
mov eax, dword [ebp - 0x40]
add eax, 0x28
jmp 0x410595
push 4
mov ax, word [ebp + 0xc]
push eax
mov ecx, dword [ebp + 8]
push ecx
call fcn.004111ca
add esp, 0xc
mov dword [ebp - 0x40], eax
cmp dword [ebp - 0x40], 0
je 0x40f4b0
mov eax, dword [ebp - 0x40]
add eax, 0x28
jmp 0x410595
mov word [ebp - 0x50], 4
jmp case.0x40f3b4.4
push 2
mov dx, word [ebp + 0xc]
push edx
mov eax, dword [ebp + 8]
push eax
call fcn.004111ca
add esp, 0xc
mov dword [ebp - 0x40], eax
cmp dword [ebp - 0x40], 0
je 0x40f4e2
mov eax, dword [ebp - 0x40]
add eax, 0x28
jmp 0x410595
push 4
mov cx, word [ebp + 0xc]
push ecx
mov edx, dword [ebp + 8]
push edx
call fcn.004111ca
add esp, 0xc
mov dword [ebp - 0x40], eax
cmp dword [ebp - 0x40], 0
je 0x40f509
mov eax, dword [ebp - 0x40]
add eax, 0x28
jmp 0x410595
push 3
mov ax, word [ebp + 0xc]
push eax
mov ecx, dword [ebp + 8]
push ecx
call fcn.004111ca
add esp, 0xc
mov dword [ebp - 0x40], eax
cmp dword [ebp - 0x40], 0
je 0x40f530
mov eax, dword [ebp - 0x40]
add eax, 0x28
jmp 0x410595
mov word [ebp - 0x50], 2
jmp case.0x40f3b4.4
push 2
mov dx, word [ebp + 0xc]
push edx
mov eax, dword [ebp + 8]
push eax
call fcn.004111ca
add esp, 0xc
mov dword [ebp - 0x40], eax
cmp dword [ebp - 0x40], 0
je 0x40f55f
mov eax, dword [ebp - 0x40]
add eax, 0x28
jmp 0x410595
push 4
mov cx, word [ebp + 0xc]
push ecx
mov edx, dword [ebp + 8]
push edx
call fcn.004111ca
add esp, 0xc
mov dword [ebp - 0x40], eax
cmp dword [ebp - 0x40], 0
je 0x40f586
mov eax, dword [ebp - 0x40]
add eax, 0x28
jmp 0x410595
push 2
mov ax, word [ebp + 0xc]
push eax
mov ecx, dword [ebp + 8]
push ecx
call fcn.004111ca
add esp, 0xc
mov dword [ebp - 0x40], eax
cmp dword [ebp - 0x40], 0
je 0x40f5ad
mov eax, dword [ebp - 0x40]
add eax, 0x28
jmp 0x410595
mov word [ebp - 0x50], 8
push 0x100
mov edx, dword [ebp + 8]
push edx
call fcn.00411c5b
add esp, 8
mov byte [ebp - 0x10], al
mov eax, dword [ebp - 0x10]
and eax, 0xff
sar eax, 2
and eax, 0x3c
push eax
mov cx, word [ebp + 0xc]
push ecx
mov edx, dword [ebp + 8]
push edx
call fcn.004111ca
add esp, 0xc
mov dword [ebp - 0x40], eax
cmp dword [ebp - 0x40], 0
je 0x40f5fb
mov eax, dword [ebp - 0x40]
add eax, 0x46
jmp 0x410595
mov eax, dword [ebp - 0x10]
and eax, 0xff
shl eax, 2
and eax, 0x3c
push eax
mov cx, word [ebp + 0xc]
push ecx
mov edx, dword [ebp + 8]
push edx
call fcn.004111ca
add esp, 0xc
mov dword [ebp - 0x40], eax
cmp dword [ebp - 0x40], 0
je 0x40f62f
mov eax, dword [ebp - 0x40]
add eax, 0x46
jmp 0x410595
mov word [ebp - 0x34], 0
mov word [ebp - 0x30], 0
jmp 0x40f649
mov ax, word [ebp - 0x30]
add ax, 1
mov word [ebp - 0x30], ax
mov ecx, dword [ebp - 0x30]
and ecx, 0xffff
mov edx, dword [ebp - 0x50]
and edx, 0xffff
cmp ecx, edx
jge 0x40f6ca
lea eax, [ebp - 0x38]
push eax
lea ecx, [ebp - 0x34]
push ecx
mov dx, word [ebp + 0xc]
push edx
mov eax, dword [ebp + 8]
push eax
call fcn.00411405
add esp, 0x10
mov dword [ebp - 0x40], eax
cmp dword [ebp - 0x40], 0
je 0x40f69a
mov cx, word [ebp + 0xc]
push ecx
mov edx, dword [ebp + 8]
push edx
call fcn.004119c4
add esp, 8
mov eax, dword [ebp - 0x40]
jmp 0x410595
mov eax, dword [ebp - 0x38]
and eax, 0xff
mov ecx, dword [ebp - 0x10]
and ecx, 0xff
xor eax, ecx
mov edx, dword [ebp - 0x30]
and edx, 0xffff
mov ecx, dword [ebp + 8]
mov ecx, dword [ecx + 4]
mov byte [edx + ecx], al
mov dl, byte [ebp - 0x38]
mov byte [ebp - 0x10], dl
jmp 0x40f63d
mov eax, dword [ebp + 8]
mov ecx, dword [eax]
xor edx, edx
mov dl, byte [ecx + 2]
cmp edx, 5
jne 0x40f6fc
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 4]
mov edx, dword [ebp + 8]
mov eax, dword [edx + 4]
mov cl, byte [ecx + 1]
mov byte [eax], cl
mov edx, dword [ebp + 8]
mov eax, dword [edx + 4]
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 4]
mov al, byte [eax + 2]
mov byte [edx + 1], al
mov ecx, dword [ebp + 8]
mov edx, dword [ecx]
xor eax, eax
mov al, byte [edx + 2]
cmp eax, 9
jne 0x40f715
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 4]
mov byte [edx + 1], 0
mov ax, word [ebp + 0xc]
push eax
mov ecx, dword [ebp + 8]
push ecx
call fcn.004119c4
add esp, 8
xor eax, eax
jmp 0x410595
mov edx, dword [ebp - 0x48]
mov al, byte [edx + 2]
mov byte [ebp - 0x74], al
cmp byte [ebp - 0x74], 2
je 0x40f8e7
cmp byte [ebp - 0x74], 4
je 0x40f751
cmp byte [ebp - 0x74], 8
je 0x40f7a4
jmp 0x40f93a
push 2
mov cx, word [ebp + 0xc]
push ecx
mov edx, dword [ebp + 8]
push edx
call fcn.004111ca
add esp, 0xc
mov dword [ebp - 0x40], eax
cmp dword [ebp - 0x40], 0
je 0x40f778
mov eax, dword [ebp - 0x40]
add eax, 0x28
jmp 0x410595
push 3
mov ax, word [ebp + 0xc]
push eax
mov ecx, dword [ebp + 8]
push ecx
call fcn.004111ca
add esp, 0xc
mov dword [ebp - 0x40], eax
cmp dword [ebp - 0x40], 0
je 0x40f79f
mov eax, dword [ebp - 0x40]
add eax, 0x28
jmp 0x410595
jmp 0x40f9d6
push 2
mov dx, word [ebp + 0xc]
push edx
mov eax, dword [ebp + 8]
push eax
call fcn.004111ca
add esp, 0xc
mov dword [ebp - 0x40], eax
cmp dword [ebp - 0x40], 0
je 0x40f7cb
mov eax, dword [ebp - 0x40]
add eax, 0x28
jmp 0x410595
push 2
mov cx, word [ebp + 0xc]
push ecx
mov edx, dword [ebp + 8]
push edx
call fcn.004111ca
add esp, 0xc
mov dword [ebp - 0x40], eax
cmp dword [ebp - 0x40], 0
je 0x40f7f2
mov eax, dword [ebp - 0x40]
add eax, 0x28
jmp 0x410595
push 0x3a
mov ax, word [ebp + 0xc]
push eax
mov ecx, dword [ebp + 8]
push ecx
call fcn.004111ca
add esp, 0xc
mov dword [ebp - 0x40], eax
cmp dword [ebp - 0x40], 0
je 0x40f819
mov eax, dword [ebp - 0x40]
add eax, 0x28
jmp 0x410595
mov edx, dword [ebp - 0x48]
xor eax, eax
mov al, byte [edx + 0x10]
sar eax, 2
and eax, 0x7c
push eax
mov cx, word [ebp + 0xc]
push ecx
mov edx, dword [ebp + 8]
push edx
call fcn.004111ca
add esp, 0xc
mov dword [ebp - 0x40], eax
cmp dword [ebp - 0x40], 0
je 0x40f84d
mov eax, dword [ebp - 0x40]
add eax, 0x50
jmp 0x410595
mov eax, dword [ebp - 0x48]
xor ecx, ecx
mov cl, byte [eax + 0x10]
shl ecx, 2
and ecx, 0x7c
push ecx
mov dx, word [ebp + 0xc]
push edx
mov eax, dword [ebp + 8]
push eax
call fcn.004111ca
add esp, 0xc
mov dword [ebp - 0x40], eax
cmp dword [ebp - 0x40], 0
je 0x40f881
mov eax, dword [ebp - 0x40]
add eax, 0x50
jmp 0x410595
mov word [ebp - 0x34], 0
lea ecx, [ebp - 4]
push ecx
lea edx, [ebp - 0x34]
push edx
mov ax, word [ebp + 0xc]
push eax
mov ecx, dword [ebp + 8]
push ecx
call fcn.004116b1
add esp, 0x10
mov dword [ebp - 0x40], eax
cmp dword [ebp - 0x40], 0
je 0x40f8b4
mov eax, dword [ebp - 0x40]
add eax, 0x5a
jmp 0x410595
mov dx, word [ebp + 0xc]
push edx
mov eax, dword [ebp + 8]
push eax
call fcn.004119c4
add esp, 8
mov ecx, dword [ebp - 4]
and ecx, 0xffff
cmp ecx, 0xaa55
je 0x40f8e0
mov eax, 5
jmp 0x410595
xor eax, eax
jmp 0x410595
push 2
mov dx, word [ebp + 0xc]
push edx
mov eax, dword [ebp + 8]
push eax
call fcn.004111ca
add esp, 0xc
mov dword [ebp - 0x40], eax
cmp dword [ebp - 0x40], 0
je 0x40f90e
mov eax, dword [ebp - 0x40]
add eax, 0x28
jmp 0x410595
push 5
mov cx, word [ebp + 0xc]
push ecx
mov edx, dword [ebp + 8]
push edx
call fcn.004111ca
add esp, 0xc
mov dword [ebp - 0x40], eax
cmp dword [ebp - 0x40], 0
je 0x40f935
mov eax, dword [ebp - 0x40]
add eax, 0x28
jmp 0x410595
jmp 0x40f9d6
push 2
mov ax, word [ebp + 0xc]
push eax
mov ecx, dword [ebp + 8]
push ecx
call fcn.004111ca
add esp, 0xc
mov dword [ebp - 0x40], eax
cmp dword [ebp - 0x40], 0
je 0x40f961
mov eax, dword [ebp - 0x40]
add eax, 0x28
jmp 0x410595
push 6
mov dx, word [ebp + 0xc]
push edx
mov eax, dword [ebp + 8]
push eax
call fcn.004111ca
add esp, 0xc
mov dword [ebp - 0x40], eax
cmp dword [ebp - 0x40], 0
je 0x40f988
mov eax, dword [ebp - 0x40]
add eax, 0x28
jmp 0x410595
push 0x15
mov cx, word [ebp + 0xc]
push ecx
mov edx, dword [ebp + 8]
push edx
call fcn.004111ca
add esp, 0xc
mov dword [ebp - 0x40], eax
cmp dword [ebp - 0x40], 0
je 0x40f9af
mov eax, dword [ebp - 0x40]
add eax, 0x28
jmp 0x410595
push 0x39
mov ax, word [ebp + 0xc]
push eax
mov ecx, dword [ebp + 8]
push ecx
call fcn.004111ca
add esp, 0xc
mov dword [ebp - 0x40], eax
cmp dword [ebp - 0x40], 0
je 0x40f9d6
mov eax, dword [ebp - 0x40]
add eax, 0x28
jmp 0x410595
mov edx, dword [ebp - 0x48]
xor eax, eax
mov al, byte [edx + 0x114]
sar eax, 2
and eax, 0x7c
push eax
mov cx, word [ebp + 0xc]
push ecx
mov edx, dword [ebp + 8]
push edx
call fcn.004111ca
add esp, 0xc
mov dword [ebp - 0x40], eax
cmp dword [ebp - 0x40], 0
je 0x40fa0d
mov eax, dword [ebp - 0x40]
add eax, 0x64
jmp 0x410595
push 3
mov eax, dword [ebp + 8]
push eax
call fcn.00411c5b
add esp, 8
and eax, 0xff
test eax, eax
jne 0x40fa65
push 0x100
mov ecx, dword [ebp + 8]
push ecx
call fcn.00411c5b
add esp, 8
and eax, 0xffff
and eax, 0x7f
or al, 2
push eax
mov dx, word [ebp + 0xc]
push edx
mov eax, dword [ebp + 8]
push eax
call fcn.004111ca
add esp, 0xc
mov dword [ebp - 0x40], eax
cmp dword [ebp - 0x40], 0
je 0x40fa65
mov eax, dword [ebp - 0x40]
add eax, 0x64
jmp 0x410595
mov ecx, dword [ebp - 0x48]
xor edx, edx
mov dl, byte [ecx + 0x114]
shl edx, 2
and edx, 0x7c
push edx
mov ax, word [ebp + 0xc]
push eax
mov ecx, dword [ebp + 8]
push ecx
call fcn.004111ca
add esp, 0xc
mov dword [ebp - 0x40], eax
cmp dword [ebp - 0x40], 0
je 0x40fa9c
mov eax, dword [ebp - 0x40]
add eax, 0x64
jmp 0x410595
mov edx, dword [ebp - 0x48]
xor eax, eax
mov al, byte [edx + 2]
cmp eax, 4
jne 0x40fd5d
mov byte [ebp - 0x20], 0
mov ecx, dword [ebp + 8]
mov edx, dword [ecx]
mov ax, word [edx + 0xe]
mov word [ebp - 0x3c], ax
mov word [ebp - 0x30], 0
jmp 0x40fad2
mov cx, word [ebp - 0x30]
add cx, 1
mov word [ebp - 0x30], cx
mov edx, dword [ebp - 0x30]
and edx, 0xffff
mov eax, dword [ebp - 0x3c]
and eax, 0xffff
cmp edx, eax
jge 0x40fc2e
mov ecx, dword [ebp + 8]
mov edx, dword [ecx]
mov eax, dword [ebp - 0x30]
and eax, 0xffff
mov cl, byte [eax + edx + 0x10]
mov byte [ebp - 0x14], cl
mov edx, dword [ebp - 0x14]
and edx, 0xff
sar edx, 2
and edx, 0xfc
add edx, 2
push edx
mov ax, word [ebp + 0xc]
push eax
mov ecx, dword [ebp + 8]
push ecx
call fcn.004111ca
add esp, 0xc
mov dword [ebp - 0x40], eax
cmp dword [ebp - 0x40], 0
je 0x40fb52
mov edx, dword [ebp - 0x30]
and edx, 0xffff
test edx, edx
jne 0x40fb47
mov eax, dword [ebp - 0x40]
add eax, 0x64
jmp 0x410595
mov eax, dword [ebp - 0x40]
add eax, 0x50
jmp 0x410595
push 0x40
mov eax, dword [ebp + 8]
push eax
call fcn.00411c5b
add esp, 8
mov byte [ebp - 0xc], al
mov ecx, dword [ebp - 0xc]
and ecx, 0xff
and ecx, 2
test ecx, ecx
je 0x40fb8a
mov edx, dword [ebp + 0xc]
and edx, 0xffff
add edx, 1
push edx
call fcn.00411c2d
add esp, 4
jmp 0x40fbdf
mov eax, dword [ebp - 0xc]
and eax, 0xff
and eax, 1
test eax, eax
je 0x40fbb6
mov ecx, dword [ebp - 0x20]
and ecx, 0xff
mov edx, dword [ebp - 0xc]
and edx, 0xff
sar edx, 2
and edx, 0xf
add ecx, edx
mov byte [ebp - 0x20], cl
mov al, byte [ebp - 0xc]
push eax
mov cx, word [ebp + 0xc]
push ecx
mov edx, dword [ebp + 8]
push edx
call fcn.004111ca
add esp, 0xc
mov dword [ebp - 0x40], eax
cmp dword [ebp - 0x40], 0
je 0x40fbdf
mov eax, dword [ebp - 0x40]
add eax, 0x50
jmp 0x410595
mov ecx, dword [ebp - 0x14]
and ecx, 0xff
mov eax, dword [ebp - 0x30]
and eax, 0xffff
add eax, 1
mov esi, dword [ebp - 0x3c]
and esi, 0xffff
cdq
idiv esi
lea edx, [eax + ecx*4 + 2]
push edx
mov ax, word [ebp + 0xc]
push eax
mov ecx, dword [ebp + 8]
push ecx
call fcn.004111ca
add esp, 0xc
mov dword [ebp - 0x40], eax
cmp dword [ebp - 0x40], 0
je 0x40fc29
mov eax, dword [ebp - 0x40]
add eax, 0x50
jmp 0x410595
jmp 0x40fac6
mov edx, dword [ebp - 0x20]
and edx, 0xff
and edx, 0xf
mov byte [ebp - 0x20], dl
mov word [ebp - 0x34], 0
lea eax, [ebp - 0x28]
push eax
lea ecx, [ebp - 0x34]
push ecx
mov dx, word [ebp + 0xc]
push edx
mov eax, dword [ebp + 8]
push eax
call fcn.00411731
add esp, 0x10
mov dword [ebp - 0x40], eax
cmp dword [ebp - 0x40], 0
je 0x40fc70
mov eax, dword [ebp - 0x40]
add eax, 0x5a
jmp 0x410595
mov cx, word [ebp + 0xc]
push ecx
mov edx, dword [ebp + 8]
push edx
call fcn.004119c4
add esp, 8
mov eax, dword [ebp - 0x2c]
mov cx, word [eax + 2]
mov word [ebp - 0x4c], cx
mov edx, dword [ebp - 0x2c]
mov ax, word [edx]
mov word [ebp - 0x1c], ax
mov word [ebp - 0x30], 0
jmp 0x40fcaa
mov cx, word [ebp - 0x30]
add cx, 1
mov word [ebp - 0x30], cx
mov edx, dword [ebp - 0x30]
and edx, 0xffff
mov eax, dword [ebp - 0x20]
and eax, 0xff
cmp edx, eax
jge 0x40fd38
mov ecx, dword [ebp - 0x4c]
and ecx, 0xff
and ecx, 1
mov byte [ebp - 0x68], cl
mov edx, dword [ebp - 0x1c]
and edx, 0xff
and edx, 1
mov byte [ebp - 0x6c], dl
mov eax, dword [ebp - 0x4c]
and eax, 0xffff
sar eax, 1
mov word [ebp - 0x4c], ax
mov ecx, dword [ebp - 0x1c]
and ecx, 0xffff
sar ecx, 1
mov word [ebp - 0x1c], cx
mov edx, dword [ebp - 0x68]
and edx, 0xff
test edx, edx
je 0x40fd16
mov eax, dword [ebp - 0x1c]
and eax, 0xffff
or ah, 0x80
mov word [ebp - 0x1c], ax
mov ecx, dword [ebp - 0x6c]
and ecx, 0xff
test ecx, ecx
je 0x40fd33
mov edx, dword [ebp - 0x4c]
and edx, 0xffff
or dh, 0x80
mov word [ebp - 0x4c], dx
jmp 0x40fc9e
mov eax, dword [ebp - 0x1c]
and eax, 0xffff
mov ecx, dword [ebp - 0x4c]
and ecx, 0xffff
shl ecx, 0x10
or eax, ecx
mov edx, dword [ebp + 8]
mov ecx, dword [edx + 4]
mov dword [ecx], eax
xor eax, eax
jmp 0x410595
mov edx, dword [ebp - 0x48]
add edx, 0x110
mov dword [ebp - 8], edx
mov word [ebp - 0x30], 0
jmp 0x40fd7d
mov ax, word [ebp - 0x30]
add ax, 1
mov word [ebp - 0x30], ax
mov ecx, dword [ebp - 0x30]
and ecx, 0xffff
cmp ecx, 2
jge 0x40fe36
push 2
mov edx, dword [ebp + 8]
push edx
call fcn.00411c5b
add esp, 8
and eax, 0xffff
test eax, eax
jne 0x40fde7
push 0x100
mov eax, dword [ebp + 8]
push eax
call fcn.00411c5b
add esp, 8
and eax, 0xffff
and eax, 0x7f
or al, 1
push eax
mov cx, word [ebp + 0xc]
push ecx
mov edx, dword [ebp + 8]
push edx
call fcn.004111ca
add esp, 0xc
mov dword [ebp - 0x40], eax
cmp dword [ebp - 0x40], 0
je 0x40fde7
mov eax, dword [ebp - 0x40]
add eax, 0x64
jmp 0x410595
mov eax, dword [ebp - 8]
xor ecx, ecx
mov cl, byte [eax + 2]
mov edx, ecx
mov eax, dword [ebp - 0x30]
and eax, 0xffff
shl eax, 2
mov ecx, 4
sub ecx, eax
sar edx, cl
shl edx, 2
and edx, 0x7c
push edx
mov cx, word [ebp + 0xc]
push ecx
mov edx, dword [ebp + 8]
push edx
call fcn.004111ca
add esp, 0xc
mov dword [ebp - 0x40], eax
cmp dword [ebp - 0x40], 0
je 0x40fe31
mov eax, dword [ebp - 0x40]
add eax, 0x64
jmp 0x410595
jmp 0x40fd71
mov word [ebp - 0x30], 0
jmp 0x40fe4a
mov ax, word [ebp - 0x30]
add ax, 1
mov word [ebp - 0x30], ax
mov ecx, dword [ebp - 0x30]
and ecx, 0xffff
cmp ecx, 2
jge 0x40ff04
mov edx, dword [ebp - 8]
xor eax, eax
mov al, byte [edx + 3]
mov ecx, dword [ebp - 0x30]
and ecx, 0xffff
shl ecx, 2
mov edx, 4
sub edx, ecx
mov ecx, edx
sar eax, cl
shl eax, 2
and eax, 0x7c
push eax
mov ax, word [ebp + 0xc]
push eax
mov ecx, dword [ebp + 8]
push ecx
call fcn.004111ca
add esp, 0xc
mov dword [ebp - 0x40], eax
cmp dword [ebp - 0x40], 0
je 0x40fea7
mov eax, dword [ebp - 0x40]
add eax, 0x32
jmp 0x410595
push 3
mov edx, dword [ebp + 8]
push edx
call fcn.00411c5b
add esp, 8
and eax, 0xffff
test eax, eax
jne 0x40feff
push 0x100
mov eax, dword [ebp + 8]
push eax
call fcn.00411c5b
add esp, 8
and eax, 0xffff
and eax, 0x7f
or al, 1
push eax
mov cx, word [ebp + 0xc]
push ecx
mov edx, dword [ebp + 8]
push edx
call fcn.004111ca
add esp, 0xc
mov dword [ebp - 0x40], eax
cmp dword [ebp - 0x40], 0
je 0x40feff
mov eax, dword [ebp - 0x40]
add eax, 0x32
jmp 0x410595
jmp 0x40fe3e
mov word [ebp - 0x30], 0
jmp 0x40ff18
mov ax, word [ebp - 0x30]
add ax, 1
mov word [ebp - 0x30], ax
mov ecx, dword [ebp - 0x30]
and ecx, 0xffff
cmp ecx, 2
jge 0x40ffd0
push 4
mov edx, dword [ebp + 8]
push edx
call fcn.00411c5b
add esp, 8
and eax, 0xffff
test eax, eax
jne 0x40ff82
push 0x100
mov eax, dword [ebp + 8]
push eax
call fcn.00411c5b
add esp, 8
and eax, 0xffff
and eax, 0x7f
or al, 2
push eax
mov cx, word [ebp + 0xc]
push ecx
mov edx, dword [ebp + 8]
push edx
call fcn.004111ca
add esp, 0xc
mov dword [ebp - 0x40], eax
cmp dword [ebp - 0x40], 0
je 0x40ff82
mov eax, dword [ebp - 0x40]
add eax, 0x32
jmp 0x410595
mov eax, dword [ebp - 8]
xor ecx, ecx
mov cl, byte [eax]
mov edx, ecx
mov eax, dword [ebp - 0x30]
and eax, 0xffff
shl eax, 2
mov ecx, 4
sub ecx, eax
sar edx, cl
shl edx, 2
and edx, 0x7c
push edx
mov cx, word [ebp + 0xc]
push ecx
mov edx, dword [ebp + 8]
push edx
call fcn.004111ca
add esp, 0xc
mov dword [ebp - 0x40], eax
cmp dword [ebp - 0x40], 0
je 0x40ffcb
mov eax, dword [ebp - 0x40]
add eax, 0x32
jmp 0x410595
jmp 0x40ff0c
mov word [ebp - 0x30], 0
jmp 0x40ffe4
mov ax, word [ebp - 0x30]
add ax, 1
mov word [ebp - 0x30], ax
mov ecx, dword [ebp - 0x30]
and ecx, 0xffff
cmp ecx, 2
jge 0x41009d
push 4
mov edx, dword [ebp + 8]
push edx
call fcn.00411c5b
add esp, 8
and eax, 0xffff
test eax, eax
jne 0x41004e
push 0x100
mov eax, dword [ebp + 8]
push eax
call fcn.00411c5b
add esp, 8
and eax, 0xffff
and eax, 0x7f
or al, 2
push eax
mov cx, word [ebp + 0xc]
push ecx
mov edx, dword [ebp + 8]
push edx
call fcn.004111ca
add esp, 0xc
mov dword [ebp - 0x40], eax
cmp dword [ebp - 0x40], 0
je 0x41004e
mov eax, dword [ebp - 0x40]
add eax, 0x32
jmp 0x410595
mov eax, dword [ebp - 8]
xor ecx, ecx
mov cl, byte [eax + 1]
mov edx, ecx
mov eax, dword [ebp - 0x30]
and eax, 0xffff
shl eax, 2
mov ecx, 4
sub ecx, eax
sar edx, cl
shl edx, 2
and edx, 0x7c
push edx
mov cx, word [ebp + 0xc]
push ecx
mov edx, dword [ebp + 8]
push edx
call fcn.004111ca
add esp, 0xc
mov dword [ebp - 0x40], eax
cmp dword [ebp - 0x40], 0
je 0x410098
mov eax, dword [ebp - 0x40]
add eax, 0x32
jmp 0x410595
jmp 0x40ffd8
mov eax, dword [ebp - 0x48]
xor ecx, ecx
mov cx, word [eax + 0xc]
mov edx, dword [ebp - 0x50]
and edx, 0xffff
add ecx, edx
sar ecx, 2
and ecx, 0x3c
push ecx
mov ax, word [ebp + 0xc]
push eax
mov ecx, dword [ebp + 8]
push ecx
call fcn.004111ca
add esp, 0xc
mov dword [ebp - 0x40], eax
cmp dword [ebp - 0x40], 0
je 0x4100dd
mov eax, dword [ebp - 0x40]
add eax, 0x3c
jmp 0x410595
push 3
mov edx, dword [ebp + 8]
push edx
call fcn.00411c5b
add esp, 8
and eax, 0xffff
test eax, eax
je 0x410135
push 0x100
mov eax, dword [ebp + 8]
push eax
call fcn.00411c5b
add esp, 8
and eax, 0xffff
and eax, 0x7f
or al, 2
push eax
mov cx, word [ebp + 0xc]
push ecx
mov edx, dword [ebp + 8]
push edx
call fcn.004111ca
add esp, 0xc
mov dword [ebp - 0x40], eax
cmp dword [ebp - 0x40], 0
je 0x410135
mov eax, dword [ebp - 0x40]
add eax, 0x3c
jmp 0x410595
mov eax, dword [ebp - 0x48]
xor ecx, ecx
mov cx, word [eax + 0xc]
mov edx, dword [ebp - 0x50]
and edx, 0xffff
add ecx, edx
shl ecx, 2
and ecx, 0x3c
push ecx
mov ax, word [ebp + 0xc]
push eax
mov ecx, dword [ebp + 8]
push ecx
call fcn.004111ca
add esp, 0xc
mov dword [ebp - 0x40], eax
cmp dword [ebp - 0x40], 0
je 0x410175
mov eax, dword [ebp - 0x40]
add eax, 0x3c
jmp 0x410595
mov edx, dword [ebp - 0x48]
xor eax, eax
mov al, byte [edx + 2]
cmp eax, 2
jne 0x410278
mov ecx, dword [ebp - 0x48]
xor edx, edx
mov dx, word [ecx + 0xe]
mov eax, dword [ebp - 0x50]
and eax, 0xffff
sub edx, eax
cmp edx, 0x13
jle 0x4101f5
push 4
mov cx, word [ebp + 0xc]
push ecx
mov edx, dword [ebp + 8]
push edx
call fcn.004111ca
add esp, 0xc
mov dword [ebp - 0x40], eax
cmp dword [ebp - 0x40], 0
je 0x4101c7
mov eax, dword [ebp - 0x40]
add eax, 0x1388
jmp 0x410595
push 0x10
mov ax, word [ebp + 0xc]
push eax
mov ecx, dword [ebp + 8]
push ecx
call fcn.004111ca
add esp, 0xc
mov dword [ebp - 0x40], eax
cmp dword [ebp - 0x40], 0
je 0x4101f0
mov eax, dword [ebp - 0x40]
add eax, 0x1388
jmp 0x410595
jmp 0x410278
mov edx, dword [ebp - 0x48]
xor eax, eax
mov ax, word [edx + 0xe]
mov ecx, dword [ebp - 0x50]
and ecx, 0xffff
sub eax, ecx
sar eax, 2
and eax, 0x3c
push eax
mov dx, word [ebp + 0xc]
push edx
mov eax, dword [ebp + 8]
push eax
call fcn.004111ca
add esp, 0xc
mov dword [ebp - 0x40], eax
cmp dword [ebp - 0x40], 0
je 0x410237
mov eax, dword [ebp - 0x40]
add eax, 0x1388
jmp 0x410595
mov ecx, dword [ebp - 0x48]
xor edx, edx
mov dx, word [ecx + 0xe]
mov eax, dword [ebp - 0x50]
and eax, 0xffff
sub edx, eax
shl edx, 2
and edx, 0x3c
push edx
mov cx, word [ebp + 0xc]
push ecx
mov edx, dword [ebp + 8]
push edx
call fcn.004111ca
add esp, 0xc
mov dword [ebp - 0x40], eax
cmp dword [ebp - 0x40], 0
je 0x410278
mov eax, dword [ebp - 0x40]
add eax, 0x1388
jmp 0x410595
push 0x100
mov eax, dword [ebp + 8]
push eax
call fcn.00411c5b
add esp, 8
mov byte [ebp - 0x10], al
mov ecx, dword [ebp - 0x10]
and ecx, 0xff
sar ecx, 2
and ecx, 0x3c
push ecx
mov dx, word [ebp + 0xc]
push edx
mov eax, dword [ebp + 8]
push eax
call fcn.004111ca
add esp, 0xc
mov dword [ebp - 0x40], eax
cmp dword [ebp - 0x40], 0
je 0x4102c1
mov eax, dword [ebp - 0x40]
add eax, 0x46
jmp 0x410595
mov ecx, dword [ebp - 0x10]
and ecx, 0xff
shl ecx, 2
and ecx, 0x3c
push ecx
mov dx, word [ebp + 0xc]
push edx
mov eax, dword [ebp + 8]
push eax
call fcn.004111ca
add esp, 0xc
mov dword [ebp - 0x40], eax
cmp dword [ebp - 0x40], 0
je 0x4102f6
mov eax, dword [ebp - 0x40]
add eax, 0x46
jmp 0x410595
mov word [ebp - 0x18], 0
mov ecx, dword [ebp - 0x48]
xor edx, edx
mov dl, byte [ecx + 2]
cmp edx, 2
jne 0x4103d7
mov word [ebp - 0x34], 0
mov eax, dword [ebp - 0x50]
and eax, 0xffff
mov ecx, dword [ebp - 0x48]
xor edx, edx
mov dx, word [ecx + 0xe]
cmp eax, edx
jge 0x4103d2
lea eax, [ebp - 0x38]
push eax
lea ecx, [ebp - 0x34]
push ecx
mov dx, word [ebp + 0xc]
push edx
mov eax, dword [ebp + 8]
push eax
call fcn.00411405
add esp, 0x10
mov dword [ebp - 0x40], eax
cmp dword [ebp - 0x40], 0
jne 0x41037b
mov ecx, dword [ebp - 0x38]
and ecx, 0xff
mov edx, dword [ebp - 0x10]
and edx, 0xff
xor ecx, edx
mov eax, dword [ebp - 0x50]
and eax, 0xffff
mov edx, dword [ebp + 8]
mov edx, dword [edx + 4]
mov byte [eax + edx], cl
mov al, byte [ebp - 0x38]
mov byte [ebp - 0x10], al
jmp 0x410394
mov cx, word [ebp + 0xc]
push ecx
mov edx, dword [ebp + 8]
push edx
call fcn.004119c4
add esp, 8
mov eax, dword [ebp - 0x40]
jmp 0x410595
mov ax, word [ebp - 0x50]
add ax, 1
mov word [ebp - 0x50], ax
mov cx, word [ebp - 0x18]
add cx, 1
mov word [ebp - 0x18], cx
mov edx, dword [ebp - 0x18]
and edx, 0xffff
cmp edx, 0x14
jne 0x4103cd
mov ax, word [ebp + 0xc]
push eax
mov ecx, dword [ebp + 8]
push ecx
call fcn.004119c4
add esp, 8
jmp 0x4103d2
jmp 0x410313
jmp 0x410561
mov edx, dword [ebp - 0x50]
and edx, 0xffff
mov eax, dword [ebp - 0x48]
xor ecx, ecx
mov cx, word [eax + 0xe]
cmp edx, ecx
jge 0x410561
mov edx, dword [ebp - 0x50]
and edx, 0xffff
mov eax, dword [ebp - 0x48]
xor ecx, ecx
mov cl, byte [edx + eax + 0x10]
mov edx, dword [ebp - 0x10]
and edx, 0xff
xor ecx, edx
mov byte [ebp - 0x44], cl
mov al, byte [ebp - 0x44]
mov byte [ebp - 0x10], al
mov ecx, dword [ebp - 0x44]
and ecx, 0xff
sar ecx, 2
and ecx, 0x3c
or ecx, 2
push ecx
mov dx, word [ebp + 0xc]
push edx
mov eax, dword [ebp + 8]
push eax
call fcn.004111ca
add esp, 0xc
mov ecx, dword [ebp - 0x50]
and ecx, 0xffff
mov edx, dword [ebp - 0x48]
xor eax, eax
mov ax, word [edx + 0xe]
sub eax, 1
cmp ecx, eax
je 0x410462
mov ecx, dword [ebp - 0x18]
and ecx, 0xffff
cmp ecx, 0x13
jne 0x41048b
mov edx, dword [ebp - 0x44]
and edx, 0xff
shl edx, 2
and edx, 0x3c
or edx, 3
push edx
mov ax, word [ebp + 0xc]
push eax
mov ecx, dword [ebp + 8]
push ecx
call fcn.004111ca
add esp, 0xc
mov dword [ebp - 0x40], eax
jmp 0x4104b2
mov edx, dword [ebp - 0x44]
and edx, 0xff
shl edx, 2
and edx, 0x3c
or edx, 2
push edx
mov ax, word [ebp + 0xc]
push eax
mov ecx, dword [ebp + 8]
push ecx
call fcn.004111ca
add esp, 0xc
mov dword [ebp - 0x40], eax
cmp dword [ebp - 0x40], 0
jne 0x41050e
mov edx, dword [ebp - 0x48]
xor eax, eax
mov ax, word [edx + 0xc]
mov ecx, dword [ebp - 0x50]
and ecx, 0xffff
add eax, ecx
and eax, 7
cmp eax, 7
je 0x4104fb
mov edx, dword [ebp - 0x50]
and edx, 0xffff
mov eax, dword [ebp - 0x48]
xor ecx, ecx
mov cx, word [eax + 0xe]
sub ecx, 1
cmp edx, ecx
je 0x4104fb
mov edx, dword [ebp - 0x18]
and edx, 0xffff
cmp edx, 0x13
jne 0x41050c
mov ax, word [ebp + 0xc]
push eax
mov ecx, dword [ebp + 8]
push ecx
call fcn.00411b56
add esp, 8
jmp 0x410524
mov dx, word [ebp + 0xc]
push edx
mov eax, dword [ebp + 8]
push eax
call fcn.004119c4
add esp, 8
mov eax, dword [ebp - 0x40]
jmp 0x410595
mov cx, word [ebp - 0x18]
add cx, 1
mov word [ebp - 0x18], cx
mov dx, word [ebp - 0x50]
add dx, 1
mov word [ebp - 0x50], dx
mov eax, dword [ebp - 0x18]
and eax, 0xffff
cmp eax, 0x14
jne 0x41055c
mov cx, word [ebp + 0xc]
push ecx
mov edx, dword [ebp + 8]
push edx
call fcn.004119c4
add esp, 8
jmp 0x410561
jmp 0x4103d7
mov eax, dword [ebp - 0x50]
and eax, 0xffff
mov ecx, dword [ebp - 0x48]
xor edx, edx
mov dx, word [ecx + 0xe]
cmp eax, edx
jne 0x41058b
mov ax, word [ebp + 0xc]
push eax
mov ecx, dword [ebp + 8]
push ecx
call fcn.004119c4
add esp, 8
xor eax, eax
jmp 0x410595
jmp 0x40f0c4
mov eax, 8
pop esi
mov esp, ebp
pop ebp
ret