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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xdc
nop
mov eax, 0
mov dword [ebp - 0x10], eax
mov eax, dword [ebp + 8]
add eax, 8
mov ecx, dword [eax]
and ecx, 0x80000
cmp ecx, 0
je 0x40822b
mov eax, dword [ebp + 8]
add eax, 0x1c
mov ecx, dword [ebp + 8]
add ecx, 0x40
mov edx, dword [eax]
mov eax, dword [ecx]
sub edx, eax
mov eax, dword [ebp + 8]
add eax, 0x24
mov ecx, dword [eax]
cmp edx, ecx
ja 0x40822b
mov eax, 1
jmp 0x408230
mov eax, 0
mov dword [ebp - 0x18], eax
mov eax, dword [ebp + 8]
mov ecx, dword [eax]
cmp ecx, 0
jne 0x40826b
mov eax, dword [ebp + 8]
add eax, 0x7c
mov ecx, dword [eax]
mov eax, dword [ebp + 8]
add eax, 0x8c
mov edx, dword [ecx]
mov ecx, dword [eax]
sub edx, ecx
cmp edx, 0x14ccc
jb 0x40826b
mov eax, 1
jmp 0x408270
mov eax, 0
cmp eax, 0
je 0x408293
mov eax, dword [ebp + 8]
add eax, 0x74
mov ecx, dword [ebp + 8]
add ecx, 0x8c
mov edx, dword [ecx]
mov ecx, dword [eax]
add ecx, edx
jmp 0x4082a1
mov eax, dword [ebp + 8]
add eax, 0x39272
jmp 0x4082a3
mov eax, ecx
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp + 8]
add eax, 0x30
mov ecx, dword [ebp - 0x1c]
mov dword [eax], ecx
mov eax, dword [ebp + 8]
add eax, 0x34
mov ecx, dword [ebp + 8]
add ecx, 0x30
mov edx, dword [ecx]
add edx, 0x14ccc
sub edx, 0x10
mov dword [eax], edx
mov eax, dword [ebp + 8]
add eax, 0x5c
mov ecx, dword [eax]
cmp ecx, 0
je 0x4082e2
mov eax, 0
jmp 0x4082e7
mov eax, 1
cmp eax, 0
je 0x4082f5
jmp 0x408314
mov eax, 0x87e
push eax
mov eax, 0x40dec3
push eax
mov eax, str._d__m_output_flush_remaining
push eax
call sub.msvcrt.dll__assert
add esp, 0xc
jmp 0x408319
mov eax, 0
mov eax, dword [ebp + 8]
add eax, 0x58
mov ecx, 0
mov dword [eax], ecx
mov eax, dword [ebp + 8]
add eax, 0x5c
mov ecx, 0
mov dword [eax], ecx
mov eax, dword [ebp + 8]
add eax, 0x2c
mov ecx, dword [eax]
mov eax, dword [ebp + 8]
add eax, 0x2c
mov edx, dword [eax]
mov eax, dword [ebp + 8]
add eax, 0x38
mov dword [ebp - 0x20], ecx
movzx ecx, byte [edx]
mov dword [ebp - 0x24], ecx
mov ecx, dword [eax]
mov eax, dword [ebp - 0x24]
sar eax, cl
and eax, 0xff
mov ecx, dword [ebp - 0x20]
mov byte [ecx], al
mov eax, dword [ebp + 8]
add eax, 0x28
mov ecx, dword [ebp + 8]
add ecx, 0x38
mov edx, dword [ecx]
cmp edx, 8
mov ecx, 0
sete cl
mov edx, dword [eax]
sub edx, ecx
mov dword [eax], edx
mov eax, dword [ebp + 8]
add eax, 8
mov ecx, dword [eax]
and ecx, 0x1000
cmp ecx, 0
je 0x408584
mov eax, dword [ebp + 8]
add eax, 0x64
mov ecx, dword [eax]
cmp ecx, 0
je 0x4083b0
jmp 0x408584
mov eax, 0x78
mov dword [ebp - 0x28], eax
mov eax, 8
mov dword [ebp - 0x2c], eax
mov eax, 1
mov ecx, dword [ebp - 0x2c]
shl eax, cl
dec eax
mov ecx, dword [ebp - 0x28]
cmp ecx, eax
mov eax, 0
setbe al
cmp eax, 0
je 0x4083e6
jmp 0x408405
mov eax, 0x887
push eax
mov eax, 0x40deec
push eax
mov eax, 0x40ded1
push eax
call sub.msvcrt.dll__assert
add esp, 0xc
jmp 0x40840a
mov eax, 0
mov eax, dword [ebp + 8]
add eax, 0x48
mov ecx, dword [ebp + 8]
add ecx, 0x44
mov edx, dword [ebp - 0x28]
mov dword [ebp - 0x30], ecx
mov ecx, dword [ebp - 0x30]
mov ecx, dword [ecx]
shl edx, cl
mov ecx, dword [eax]
or ecx, edx
mov dword [eax], ecx
mov eax, dword [ebp + 8]
add eax, 0x44
mov ecx, dword [eax]
mov edx, dword [ebp - 0x2c]
add ecx, edx
mov dword [eax], ecx
mov eax, dword [ebp + 8]
add eax, 0x44
mov ecx, dword [eax]
cmp ecx, 8
jb 0x40849a
mov eax, dword [ebp + 8]
add eax, 0x30
mov ecx, dword [ebp + 8]
add ecx, 0x34
mov edx, dword [eax]
mov eax, dword [ecx]
cmp edx, eax
jae 0x40847e
mov eax, dword [ebp + 8]
add eax, 0x30
mov ecx, dword [eax]
mov edx, ecx
inc ecx
mov dword [eax], ecx
mov eax, dword [ebp + 8]
add eax, 0x48
mov ecx, dword [eax]
and ecx, 0xff
mov byte [edx], cl
mov eax, dword [ebp + 8]
add eax, 0x48
mov ecx, dword [eax]
shr ecx, 8
mov dword [eax], ecx
mov eax, dword [ebp + 8]
add eax, 0x44
mov ecx, dword [eax]
sub ecx, 8
mov dword [eax], ecx
jmp 0x408438
mov eax, 1
mov dword [ebp - 0x34], eax
mov eax, 8
mov dword [ebp - 0x38], eax
mov eax, 1
mov ecx, dword [ebp - 0x38]
shl eax, cl
dec eax
mov ecx, dword [ebp - 0x34]
cmp ecx, eax
mov eax, 0
setbe al
cmp eax, 0
je 0x4084d0
jmp 0x4084ef
mov eax, 0x887
push eax
mov eax, 0x40df15
push eax
mov eax, 0x40defa
push eax
call sub.msvcrt.dll__assert
add esp, 0xc
jmp 0x4084f4
mov eax, 0
mov eax, dword [ebp + 8]
add eax, 0x48
mov ecx, dword [ebp + 8]
add ecx, 0x44
mov edx, dword [ebp - 0x34]
mov dword [ebp - 0x3c], ecx
mov ecx, dword [ebp - 0x3c]
mov ecx, dword [ecx]
shl edx, cl
mov ecx, dword [eax]
or ecx, edx
mov dword [eax], ecx
mov eax, dword [ebp + 8]
add eax, 0x44
mov ecx, dword [eax]
mov edx, dword [ebp - 0x38]
add ecx, edx
mov dword [eax], ecx
mov eax, dword [ebp + 8]
add eax, 0x44
mov ecx, dword [eax]
cmp ecx, 8
jb 0x408584
mov eax, dword [ebp + 8]
add eax, 0x30
mov ecx, dword [ebp + 8]
add ecx, 0x34
mov edx, dword [eax]
mov eax, dword [ecx]
cmp edx, eax
jae 0x408568
mov eax, dword [ebp + 8]
add eax, 0x30
mov ecx, dword [eax]
mov edx, ecx
inc ecx
mov dword [eax], ecx
mov eax, dword [ebp + 8]
add eax, 0x48
mov ecx, dword [eax]
and ecx, 0xff
mov byte [edx], cl
mov eax, dword [ebp + 8]
add eax, 0x48
mov ecx, dword [eax]
shr ecx, 8
mov dword [eax], ecx
mov eax, dword [ebp + 8]
add eax, 0x44
mov ecx, dword [eax]
sub ecx, 8
mov dword [eax], ecx
jmp 0x408522
mov eax, dword [ebp + 0xc]
cmp eax, 4
mov eax, 0
sete al
mov dword [ebp - 0x40], eax
mov eax, 1
mov dword [ebp - 0x44], eax
mov eax, 1
mov ecx, dword [ebp - 0x44]
shl eax, cl
dec eax
mov ecx, dword [ebp - 0x40]
cmp ecx, eax
mov eax, 0
setbe al
cmp eax, 0
je 0x4085c3
jmp 0x4085e2
mov eax, 0x88a
push eax
mov eax, 0x40df3e
push eax
mov eax, 0x40df23
push eax
call sub.msvcrt.dll__assert
add esp, 0xc
jmp 0x4085e7
mov eax, 0
mov eax, dword [ebp + 8]
add eax, 0x48
mov ecx, dword [ebp + 8]
add ecx, 0x44
mov edx, dword [ebp - 0x40]
mov dword [ebp - 0x48], ecx
mov ecx, dword [ebp - 0x48]
mov ecx, dword [ecx]
shl edx, cl
mov ecx, dword [eax]
or ecx, edx
mov dword [eax], ecx
mov eax, dword [ebp + 8]
add eax, 0x44
mov ecx, dword [eax]
mov edx, dword [ebp - 0x44]
add ecx, edx
mov dword [eax], ecx
mov eax, dword [ebp + 8]
add eax, 0x44
mov ecx, dword [eax]
cmp ecx, 8
jb 0x408677
mov eax, dword [ebp + 8]
add eax, 0x30
mov ecx, dword [ebp + 8]
add ecx, 0x34
mov edx, dword [eax]
mov eax, dword [ecx]
cmp edx, eax
jae 0x40865b
mov eax, dword [ebp + 8]
add eax, 0x30
mov ecx, dword [eax]
mov edx, ecx
inc ecx
mov dword [eax], ecx
mov eax, dword [ebp + 8]
add eax, 0x48
mov ecx, dword [eax]
and ecx, 0xff
mov byte [edx], cl
mov eax, dword [ebp + 8]
add eax, 0x48
mov ecx, dword [eax]
shr ecx, 8
mov dword [eax], ecx
mov eax, dword [ebp + 8]
add eax, 0x44
mov ecx, dword [eax]
sub ecx, 8
mov dword [eax], ecx
jmp 0x408615
mov eax, dword [ebp + 8]
add eax, 0x30
mov ecx, dword [eax]
mov dword [ebp - 0xc], ecx
mov eax, dword [ebp + 8]
add eax, 0x48
mov ecx, dword [eax]
mov dword [ebp - 4], ecx
mov eax, dword [ebp + 8]
add eax, 0x44
mov ecx, dword [eax]
mov dword [ebp - 8], ecx
mov eax, dword [ebp - 0x18]
cmp eax, 0
je 0x4086a9
jmp 0x4086ed
mov eax, dword [ebp + 8]
add eax, 8
mov ecx, dword [eax]
and ecx, 0x40000
cmp ecx, 0
jne 0x4086d8
mov eax, dword [ebp + 8]
add eax, 0x3c
mov ecx, dword [eax]
cmp ecx, 0x30
jb 0x4086d8
mov eax, 0
jmp 0x4086dd
mov eax, 1
push eax
mov eax, dword [ebp + 8]
push eax
call fcn.00408198
add esp, 8
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0x18]
cmp eax, 0
jne 0x408732
mov eax, dword [ebp + 8]
add eax, 0x3c
mov ecx, dword [eax]
cmp ecx, 0
je 0x40872d
mov eax, dword [ebp + 8]
add eax, 0x30
mov ecx, dword [eax]
mov eax, dword [ebp - 0xc]
sub ecx, eax
inc ecx
mov eax, dword [ebp + 8]
add eax, 0x3c
mov edx, dword [eax]
cmp ecx, edx
jb 0x40872d
jmp 0x408732
jmp 0x408bc9
mov eax, dword [ebp + 8]
add eax, 0x1c
mov ecx, dword [ebp + 8]
add ecx, 0x40
mov edx, dword [eax]
mov eax, dword [ecx]
sub edx, eax
mov eax, dword [ebp + 8]
add eax, 0x24
mov ecx, dword [eax]
cmp edx, ecx
ja 0x408bc9
mov eax, dword [ebp + 8]
add eax, 0x30
mov ecx, dword [ebp - 0xc]
mov dword [eax], ecx
mov eax, dword [ebp + 8]
add eax, 0x48
mov ecx, dword [ebp - 4]
mov dword [eax], ecx
mov eax, dword [ebp + 8]
add eax, 0x44
mov ecx, dword [ebp - 8]
mov dword [eax], ecx
mov eax, 0
mov dword [ebp - 0x50], eax
mov eax, 2
mov dword [ebp - 0x54], eax
mov eax, 1
mov ecx, dword [ebp - 0x54]
shl eax, cl
dec eax
mov ecx, dword [ebp - 0x50]
cmp ecx, eax
mov eax, 0
setbe al
cmp eax, 0
je 0x4087ab
jmp 0x4087ca
mov eax, 0x896
push eax
mov eax, 0x40df67
push eax
mov eax, 0x40df4c
push eax
call sub.msvcrt.dll__assert
add esp, 0xc
jmp 0x4087cf
mov eax, 0
mov eax, dword [ebp + 8]
add eax, 0x48
mov ecx, dword [ebp + 8]
add ecx, 0x44
mov edx, dword [ebp - 0x50]
mov dword [ebp - 0x58], ecx
mov ecx, dword [ebp - 0x58]
mov ecx, dword [ecx]
shl edx, cl
mov ecx, dword [eax]
or ecx, edx
mov dword [eax], ecx
mov eax, dword [ebp + 8]
add eax, 0x44
mov ecx, dword [eax]
mov edx, dword [ebp - 0x54]
add ecx, edx
mov dword [eax], ecx
mov eax, dword [ebp + 8]
add eax, 0x44
mov ecx, dword [eax]
cmp ecx, 8
jb 0x40885f
mov eax, dword [ebp + 8]
add eax, 0x30
mov ecx, dword [ebp + 8]
add ecx, 0x34
mov edx, dword [eax]
mov eax, dword [ecx]
cmp edx, eax
jae 0x408843
mov eax, dword [ebp + 8]
add eax, 0x30
mov ecx, dword [eax]
mov edx, ecx
inc ecx
mov dword [eax], ecx
mov eax, dword [ebp + 8]
add eax, 0x48
mov ecx, dword [eax]
and ecx, 0xff
mov byte [edx], cl
mov eax, dword [ebp + 8]
add eax, 0x48
mov ecx, dword [eax]
shr ecx, 8
mov dword [eax], ecx
mov eax, dword [ebp + 8]
add eax, 0x44
mov ecx, dword [eax]
sub ecx, 8
mov dword [eax], ecx
jmp 0x4087fd
mov eax, dword [ebp + 8]
add eax, 0x44
mov ecx, dword [eax]
cmp ecx, 0
je 0x408964
mov eax, 0
mov dword [ebp - 0x5c], eax
mov eax, dword [ebp + 8]
add eax, 0x44
mov ecx, 8
mov edx, dword [eax]
sub ecx, edx
mov dword [ebp - 0x60], ecx
mov eax, 1
mov ecx, dword [ebp - 0x60]
shl eax, cl
dec eax
mov ecx, dword [ebp - 0x5c]
cmp ecx, eax
mov eax, 0
setbe al
cmp eax, 0
je 0x4088b0
jmp 0x4088cf
mov eax, 0x897
push eax
mov eax, 0x40df90
push eax
mov eax, 0x40df75
push eax
call sub.msvcrt.dll__assert
add esp, 0xc
jmp 0x4088d4
mov eax, 0
mov eax, dword [ebp + 8]
add eax, 0x48
mov ecx, dword [ebp + 8]
add ecx, 0x44
mov edx, dword [ebp - 0x5c]
mov dword [ebp - 0x64], ecx
mov ecx, dword [ebp - 0x64]
mov ecx, dword [ecx]
shl edx, cl
mov ecx, dword [eax]
or ecx, edx
mov dword [eax], ecx
mov eax, dword [ebp + 8]
add eax, 0x44
mov ecx, dword [eax]
mov edx, dword [ebp - 0x60]
add ecx, edx
mov dword [eax], ecx
mov eax, dword [ebp + 8]
add eax, 0x44
mov ecx, dword [eax]
cmp ecx, 8
jb 0x408964
mov eax, dword [ebp + 8]
add eax, 0x30
mov ecx, dword [ebp + 8]
add ecx, 0x34
mov edx, dword [eax]
mov eax, dword [ecx]
cmp edx, eax
jae 0x408948
mov eax, dword [ebp + 8]
add eax, 0x30
mov ecx, dword [eax]
mov edx, ecx
inc ecx
mov dword [eax], ecx
mov eax, dword [ebp + 8]
add eax, 0x48
mov ecx, dword [eax]
and ecx, 0xff
mov byte [edx], cl
mov eax, dword [ebp + 8]
add eax, 0x48
mov ecx, dword [eax]
shr ecx, 8
mov dword [eax], ecx
mov eax, dword [ebp + 8]
add eax, 0x44
mov ecx, dword [eax]
sub ecx, 8
mov dword [eax], ecx
jmp 0x408902
mov eax, 2
mov dword [ebp - 0x4c], eax
mov eax, dword [ebp - 0x4c]
cmp eax, 0
je 0x408a90
jmp 0x408998
mov eax, dword [ebp - 0x4c]
add eax, 0xffffffff
mov dword [ebp - 0x4c], eax
mov eax, dword [ebp + 8]
add eax, 0x3c
mov ecx, dword [eax]
xor ecx, 0xffff
mov dword [eax], ecx
jmp 0x40896c
mov eax, dword [ebp + 8]
add eax, 0x3c
mov ecx, dword [eax]
and ecx, 0xffff
mov dword [ebp - 0x68], ecx
mov eax, 0x10
mov dword [ebp - 0x6c], eax
mov eax, 1
mov ecx, dword [ebp - 0x6c]
shl eax, cl
dec eax
mov ecx, dword [ebp - 0x68]
cmp ecx, eax
mov eax, 0
setbe al
cmp eax, 0
je 0x4089d7
jmp 0x4089f6
mov eax, 0x89a
push eax
mov eax, 0x40dfb9
push eax
mov eax, 0x40df9e
push eax
call sub.msvcrt.dll__assert
add esp, 0xc
jmp 0x4089fb
mov eax, 0
mov eax, dword [ebp + 8]
add eax, 0x48
mov ecx, dword [ebp + 8]
add ecx, 0x44
mov edx, dword [ebp - 0x68]
mov dword [ebp - 0x70], ecx
mov ecx, dword [ebp - 0x70]
mov ecx, dword [ecx]
shl edx, cl
mov ecx, dword [eax]
or ecx, edx
mov dword [eax], ecx
mov eax, dword [ebp + 8]
add eax, 0x44
mov ecx, dword [eax]
mov edx, dword [ebp - 0x6c]
add ecx, edx
mov dword [eax], ecx
mov eax, dword [ebp + 8]
add eax, 0x44
mov ecx, dword [eax]
cmp ecx, 8
jb 0x408a8b
mov eax, dword [ebp + 8]
add eax, 0x30
mov ecx, dword [ebp + 8]
add ecx, 0x34
mov edx, dword [eax]
mov eax, dword [ecx]
cmp edx, eax
jae 0x408a6f
mov eax, dword [ebp + 8]
add eax, 0x30
mov ecx, dword [eax]
mov edx, ecx
inc ecx
mov dword [eax], ecx
mov eax, dword [ebp + 8]
add eax, 0x48
mov ecx, dword [eax]
and ecx, 0xff
mov byte [edx], cl
mov eax, dword [ebp + 8]
add eax, 0x48
mov ecx, dword [eax]
shr ecx, 8
mov dword [eax], ecx
mov eax, dword [ebp + 8]
add eax, 0x44
mov ecx, dword [eax]
sub ecx, 8
mov dword [eax], ecx
jmp 0x408a29
jmp 0x40897d
mov eax, 0
mov dword [ebp - 0x4c], eax
mov eax, dword [ebp + 8]
add eax, 0x3c
mov ecx, dword [ebp - 0x4c]
mov edx, dword [eax]
cmp ecx, edx
jae 0x408bc4
jmp 0x408ab9
mov eax, dword [ebp - 0x4c]
inc eax
mov dword [ebp - 0x4c], eax
jmp 0x408a98
mov eax, dword [ebp + 8]
add eax, 0x90
mov ecx, dword [ebp + 8]
add ecx, 0x40
mov edx, dword [ecx]
mov ecx, dword [ebp - 0x4c]
add edx, ecx
and edx, 0x7fff
add eax, edx
movzx ecx, byte [eax]
mov dword [ebp - 0x74], ecx
mov eax, 8
mov dword [ebp - 0x78], eax
mov eax, 1
mov ecx, dword [ebp - 0x78]
shl eax, cl
dec eax
mov ecx, dword [ebp - 0x74]
cmp ecx, eax
mov eax, 0
setbe al
cmp eax, 0
je 0x408b0b
jmp 0x408b2a
mov eax, 0x89e
push eax
mov eax, 0x40dfe2
push eax
mov eax, 0x40dfc7
push eax
call sub.msvcrt.dll__assert
add esp, 0xc
jmp 0x408b2f
mov eax, 0
mov eax, dword [ebp + 8]
add eax, 0x48
mov ecx, dword [ebp + 8]
add ecx, 0x44
mov edx, dword [ebp - 0x74]
mov dword [ebp - 0x7c], ecx
mov ecx, dword [ebp - 0x7c]
mov ecx, dword [ecx]
shl edx, cl
mov ecx, dword [eax]
or ecx, edx
mov dword [eax], ecx
mov eax, dword [ebp + 8]
add eax, 0x44
mov ecx, dword [eax]
mov edx, dword [ebp - 0x78]
add ecx, edx
mov dword [eax], ecx
mov eax, dword [ebp + 8]
add eax, 0x44
mov ecx, dword [eax]
cmp ecx, 8
jb 0x408bbf
mov eax, dword [ebp + 8]
add eax, 0x30
mov ecx, dword [ebp + 8]
add ecx, 0x34
mov edx, dword [eax]
mov eax, dword [ecx]
cmp edx, eax
jae 0x408ba3
mov eax, dword [ebp + 8]
add eax, 0x30
mov ecx, dword [eax]
mov edx, ecx
inc ecx
mov dword [eax], ecx
mov eax, dword [ebp + 8]
add eax, 0x48
mov ecx, dword [eax]
and ecx, 0xff
mov byte [edx], cl
mov eax, dword [ebp + 8]
add eax, 0x48
mov ecx, dword [eax]
shr ecx, 8
mov dword [eax], ecx
mov eax, dword [ebp + 8]
add eax, 0x44
mov ecx, dword [eax]
sub ecx, 8
mov dword [eax], ecx
jmp 0x408b5d
jmp 0x408ab0
jmp 0x408c0d
mov eax, dword [ebp - 0x10]
cmp eax, 0
je 0x408bda
jmp 0x408c0d
mov eax, dword [ebp + 8]
add eax, 0x30
mov ecx, dword [ebp - 0xc]
mov dword [eax], ecx
mov eax, dword [ebp + 8]
add eax, 0x48
mov ecx, dword [ebp - 4]
mov dword [eax], ecx
mov eax, dword [ebp + 8]
add eax, 0x44
mov ecx, dword [ebp - 8]
mov dword [eax], ecx
mov eax, 1
push eax
mov eax, dword [ebp + 8]
push eax
call fcn.00408198
add esp, 8
mov eax, dword [ebp + 0xc]
cmp eax, 0
je 0x40922d
mov eax, dword [ebp + 0xc]
cmp eax, 4
jne 0x408eb3
mov eax, dword [ebp + 8]
add eax, 0x44
mov ecx, dword [eax]
cmp ecx, 0
je 0x408d39
mov eax, 0
mov dword [ebp - 0x80], eax
mov eax, dword [ebp + 8]
add eax, 0x44
mov ecx, 8
mov edx, dword [eax]
sub ecx, edx
mov dword [ebp - 0x84], ecx
mov eax, 1
mov ecx, dword [ebp - 0x84]
shl eax, cl
dec eax
mov ecx, dword [ebp - 0x80]
cmp ecx, eax
mov eax, 0
setbe al
cmp eax, 0
je 0x408c7c
jmp 0x408c9b
mov eax, 0x8ac
push eax
mov eax, 0x40e00b
push eax
mov eax, 0x40dff0
push eax
call sub.msvcrt.dll__assert
add esp, 0xc
jmp 0x408ca0
mov eax, 0
mov eax, dword [ebp + 8]
add eax, 0x48
mov ecx, dword [ebp + 8]
add ecx, 0x44
mov edx, dword [ebp - 0x80]
mov dword [ebp - 0x88], ecx
mov ecx, dword [ebp - 0x88]
mov ecx, dword [ecx]
shl edx, cl
mov ecx, dword [eax]
or ecx, edx
mov dword [eax], ecx
mov eax, dword [ebp + 8]
add eax, 0x44
mov ecx, dword [eax]
mov edx, dword [ebp - 0x84]
add ecx, edx
mov dword [eax], ecx
mov eax, dword [ebp + 8]
add eax, 0x44
mov ecx, dword [eax]
cmp ecx, 8
jb 0x408d39
mov eax, dword [ebp + 8]
add eax, 0x30
mov ecx, dword [ebp + 8]
add ecx, 0x34
mov edx, dword [eax]
mov eax, dword [ecx]
cmp edx, eax
jae 0x408d1d
mov eax, dword [ebp + 8]
add eax, 0x30
mov ecx, dword [eax]
mov edx, ecx
inc ecx
mov dword [eax], ecx
mov eax, dword [ebp + 8]
add eax, 0x48
mov ecx, dword [eax]
and ecx, 0xff
mov byte [edx], cl
mov eax, dword [ebp + 8]
add eax, 0x48
mov ecx, dword [eax]
shr ecx, 8
mov dword [eax], ecx
mov eax, dword [ebp + 8]
add eax, 0x44
mov ecx, dword [eax]
sub ecx, 8
mov dword [eax], ecx
jmp 0x408cd7
mov eax, dword [ebp + 8]
add eax, 8
mov ecx, dword [eax]
and ecx, 0x1000
cmp ecx, 0
je 0x408eae
mov eax, dword [ebp + 8]
add eax, 0x18
mov ecx, dword [eax]
mov dword [ebp - 0x90], ecx
mov eax, 0
mov dword [ebp - 0x8c], eax
mov eax, dword [ebp - 0x8c]
cmp eax, 4
jae 0x408eae
jmp 0x408d8e
mov eax, dword [ebp - 0x8c]
mov ecx, eax
inc eax
mov dword [ebp - 0x8c], eax
jmp 0x408d69
mov eax, dword [ebp - 0x90]
shr eax, 0x18
and eax, 0xff
mov dword [ebp - 0x94], eax
mov eax, 8
mov dword [ebp - 0x98], eax
mov eax, 1
mov ecx, dword [ebp - 0x98]
shl eax, cl
dec eax
mov ecx, dword [ebp - 0x94]
cmp ecx, eax
mov eax, 0
setbe al
cmp eax, 0
je 0x408dda
jmp 0x408df9
mov eax, 0x8ad
push eax
mov eax, 0x40e034
push eax
mov eax, 0x40e019
push eax
call sub.msvcrt.dll__assert
add esp, 0xc
jmp 0x408dfe
mov eax, 0
mov eax, dword [ebp + 8]
add eax, 0x48
mov ecx, dword [ebp + 8]
add ecx, 0x44
mov edx, dword [ebp - 0x94]
mov dword [ebp - 0x9c], ecx
mov ecx, dword [ebp - 0x9c]
mov ecx, dword [ecx]
shl edx, cl
mov ecx, dword [eax]
or ecx, edx
mov dword [eax], ecx
mov eax, dword [ebp + 8]
add eax, 0x44
mov ecx, dword [eax]
mov edx, dword [ebp - 0x98]
add ecx, edx
mov dword [eax], ecx
mov eax, dword [ebp + 8]
add eax, 0x44
mov ecx, dword [eax]
cmp ecx, 8
jb 0x408e9a
mov eax, dword [ebp + 8]
add eax, 0x30
mov ecx, dword [ebp + 8]
add ecx, 0x34
mov edx, dword [eax]
mov eax, dword [ecx]
cmp edx, eax
jae 0x408e7e
mov eax, dword [ebp + 8]
add eax, 0x30
mov ecx, dword [eax]
mov edx, ecx
inc ecx
mov dword [eax], ecx
mov eax, dword [ebp + 8]
add eax, 0x48
mov ecx, dword [eax]
and ecx, 0xff
mov byte [edx], cl
mov eax, dword [ebp + 8]
add eax, 0x48
mov ecx, dword [eax]
shr ecx, 8
mov dword [eax], ecx
mov eax, dword [ebp + 8]
add eax, 0x44
mov ecx, dword [eax]
sub ecx, 8
mov dword [eax], ecx
jmp 0x408e38
mov eax, dword [ebp - 0x90]
shl eax, 8
mov dword [ebp - 0x90], eax
jmp 0x408d7d
jmp 0x40922d
mov eax, 0
mov dword [ebp - 0xa4], eax
mov eax, 0
mov dword [ebp - 0xa8], eax
mov eax, 3
mov dword [ebp - 0xac], eax
mov eax, 1
mov ecx, dword [ebp - 0xac]
shl eax, cl
dec eax
mov ecx, dword [ebp - 0xa8]
cmp ecx, eax
mov eax, 0
setbe al
cmp eax, 0
je 0x408f00
jmp 0x408f1f
mov eax, 0x8b1
push eax
mov eax, 0x40e05d
push eax
mov eax, 0x40e042
push eax
call sub.msvcrt.dll__assert
add esp, 0xc
jmp 0x408f24
mov eax, 0
mov eax, dword [ebp + 8]
add eax, 0x48
mov ecx, dword [ebp + 8]
add ecx, 0x44
mov edx, dword [ebp - 0xa8]
mov dword [ebp - 0xb0], ecx
mov ecx, dword [ebp - 0xb0]
mov ecx, dword [ecx]
shl edx, cl
mov ecx, dword [eax]
or ecx, edx
mov dword [eax], ecx
mov eax, dword [ebp + 8]
add eax, 0x44
mov ecx, dword [eax]
mov edx, dword [ebp - 0xac]
add ecx, edx
mov dword [eax], ecx
mov eax, dword [ebp + 8]
add eax, 0x44
mov ecx, dword [eax]
cmp ecx, 8
jb 0x408fc0
mov eax, dword [ebp + 8]
add eax, 0x30
mov ecx, dword [ebp + 8]
add ecx, 0x34
mov edx, dword [eax]
mov eax, dword [ecx]
cmp edx, eax
jae 0x408fa4
mov eax, dword [ebp + 8]
add eax, 0x30
mov ecx, dword [eax]
mov edx, ecx
inc ecx
mov dword [eax], ecx
mov eax, dword [ebp + 8]
add eax, 0x48
mov ecx, dword [eax]
and ecx, 0xff
mov byte [edx], cl
mov eax, dword [ebp + 8]
add eax, 0x48
mov ecx, dword [eax]
shr ecx, 8
mov dword [eax], ecx
mov eax, dword [ebp + 8]
add eax, 0x44
mov ecx, dword [eax]
sub ecx, 8
mov dword [eax], ecx
jmp 0x408f5e
mov eax, dword [ebp + 8]
add eax, 0x44
mov ecx, dword [eax]
cmp ecx, 0
je 0x4090dd
mov eax, 0
mov dword [ebp - 0xb4], eax
mov eax, dword [ebp + 8]
add eax, 0x44
mov ecx, 8
mov edx, dword [eax]
sub ecx, edx
mov dword [ebp - 0xb8], ecx
mov eax, 1
mov ecx, dword [ebp - 0xb8]
shl eax, cl
dec eax
mov ecx, dword [ebp - 0xb4]
cmp ecx, eax
mov eax, 0
setbe al
cmp eax, 0
je 0x40901d
jmp 0x40903c
mov eax, 0x8b1
push eax
mov eax, 0x40e086
push eax
mov eax, 0x40e06b
push eax
call sub.msvcrt.dll__assert
add esp, 0xc
jmp 0x409041
mov eax, 0
mov eax, dword [ebp + 8]
add eax, 0x48
mov ecx, dword [ebp + 8]
add ecx, 0x44
mov edx, dword [ebp - 0xb4]
mov dword [ebp - 0xbc], ecx
mov ecx, dword [ebp - 0xbc]
mov ecx, dword [ecx]
shl edx, cl
mov ecx, dword [eax]
or ecx, edx
mov dword [eax], ecx
mov eax, dword [ebp + 8]
add eax, 0x44
mov ecx, dword [eax]
mov edx, dword [ebp - 0xb8]
add ecx, edx
mov dword [eax], ecx
mov eax, dword [ebp + 8]
add eax, 0x44
mov ecx, dword [eax]
cmp ecx, 8
jb 0x4090dd
mov eax, dword [ebp + 8]
add eax, 0x30
mov ecx, dword [ebp + 8]
add ecx, 0x34
mov edx, dword [eax]
mov eax, dword [ecx]
cmp edx, eax
jae 0x4090c1
mov eax, dword [ebp + 8]
add eax, 0x30
mov ecx, dword [eax]
mov edx, ecx
inc ecx
mov dword [eax], ecx
mov eax, dword [ebp + 8]
add eax, 0x48
mov ecx, dword [eax]
and ecx, 0xff
mov byte [edx], cl
mov eax, dword [ebp + 8]
add eax, 0x48
mov ecx, dword [eax]
shr ecx, 8
mov dword [eax], ecx
mov eax, dword [ebp + 8]
add eax, 0x44
mov ecx, dword [eax]
sub ecx, 8
mov dword [eax], ecx
jmp 0x40907b
mov eax, 2
mov dword [ebp - 0xa0], eax
mov eax, dword [ebp - 0xa0]
cmp eax, 0
je 0x40922d
jmp 0x40911f
mov eax, dword [ebp - 0xa0]
add eax, 0xffffffff
mov dword [ebp - 0xa0], eax
mov eax, dword [ebp - 0xa4]
xor eax, 0xffff
mov dword [ebp - 0xa4], eax
jmp 0x4090e8
mov eax, dword [ebp - 0xa4]
and eax, 0xffff
mov dword [ebp - 0xc0], eax
mov eax, 0x10
mov dword [ebp - 0xc4], eax
mov eax, 1
mov ecx, dword [ebp - 0xc4]
shl eax, cl
dec eax
mov ecx, dword [ebp - 0xc0]
cmp ecx, eax
mov eax, 0
setbe al
cmp eax, 0
je 0x409168
jmp 0x409187
mov eax, 0x8b1
push eax
mov eax, 0x40e0af
push eax
mov eax, str.bits_____1U____len____1U_
push eax
call sub.msvcrt.dll__assert
add esp, 0xc
jmp 0x40918c
mov eax, 0
mov eax, dword [ebp + 8]
add eax, 0x48
mov ecx, dword [ebp + 8]
add ecx, 0x44
mov edx, dword [ebp - 0xc0]
mov dword [ebp - 0xc8], ecx
mov ecx, dword [ebp - 0xc8]
mov ecx, dword [ecx]
shl edx, cl
mov ecx, dword [eax]
or ecx, edx
mov dword [eax], ecx
mov eax, dword [ebp + 8]
add eax, 0x44
mov ecx, dword [eax]
mov edx, dword [ebp - 0xc4]
add ecx, edx
mov dword [eax], ecx
mov eax, dword [ebp + 8]
add eax, 0x44
mov ecx, dword [eax]
cmp ecx, 8
jb 0x409228
mov eax, dword [ebp + 8]
add eax, 0x30
mov ecx, dword [ebp + 8]
add ecx, 0x34
mov edx, dword [eax]
mov eax, dword [ecx]
cmp edx, eax
jae 0x40920c
mov eax, dword [ebp + 8]
add eax, 0x30
mov ecx, dword [eax]
mov edx, ecx
inc ecx
mov dword [eax], ecx
mov eax, dword [ebp + 8]
add eax, 0x48
mov ecx, dword [eax]
and ecx, 0xff
mov byte [edx], cl
mov eax, dword [ebp + 8]
add eax, 0x48
mov ecx, dword [eax]
shr ecx, 8
mov dword [eax], ecx
mov eax, dword [ebp + 8]
add eax, 0x44
mov ecx, dword [eax]
sub ecx, 8
mov dword [eax], ecx
jmp 0x4091c6
jmp 0x4090fc
mov eax, dword [ebp + 8]
add eax, 0x30
mov ecx, dword [ebp + 8]
add ecx, 0x34
mov edx, dword [eax]
mov eax, dword [ecx]
cmp edx, eax
mov eax, 0
setb al
cmp eax, 0
je 0x409255
jmp 0x409274
mov eax, 0x8b5
push eax
mov eax, 0x40e0e5
push eax
mov eax, str.d__m_pOutput_buf___d__m_pOutput_buf_end
push eax
call sub.msvcrt.dll__assert
add esp, 0xc
jmp 0x409279
mov eax, 0
mov eax, dword [ebp + 8]
add eax, 0x8192
mov ecx, 0x240
push ecx
mov ecx, 0
push ecx
push eax
call sub.msvcrt.dll_memset
add esp, 0xc
mov eax, dword [ebp + 8]
add eax, 0x8192
add eax, 0x240
mov ecx, 0x40
push ecx
mov ecx, 0
push ecx
push eax
call sub.msvcrt.dll_memset
add esp, 0xc
mov eax, dword [ebp + 8]
add eax, 0x28
mov ecx, dword [ebp + 8]
add ecx, 0x9272
inc ecx
mov dword [eax], ecx
mov eax, dword [ebp + 8]
add eax, 0x2c
mov ecx, dword [ebp + 8]
add ecx, 0x9272
mov dword [eax], ecx
mov eax, dword [ebp + 8]
add eax, 0x38
mov ecx, 8
mov dword [eax], ecx
mov eax, dword [ebp + 8]
add eax, 0x40
mov ecx, dword [ebp + 8]
add ecx, 0x3c
mov edx, dword [eax]
mov dword [ebp - 0xcc], eax
mov eax, dword [ecx]
add edx, eax
mov eax, dword [ebp - 0xcc]
mov dword [eax], edx
mov eax, dword [ebp + 8]
add eax, 0x3c
mov ecx, 0
mov dword [eax], ecx
mov eax, dword [ebp + 8]
add eax, 0x64
mov ecx, dword [eax]
mov edx, ecx
inc ecx
mov dword [eax], ecx
mov eax, dword [ebp + 8]
add eax, 0x30
mov ecx, dword [eax]
mov eax, dword [ebp - 0x1c]
sub ecx, eax
mov dword [ebp - 0x14], ecx
cmp ecx, 0
je 0x4094c3
mov eax, dword [ebp + 8]
mov ecx, dword [eax]
cmp ecx, 0
je 0x4093cb
mov eax, dword [ebp + 8]
add eax, 0x78
mov ecx, dword [eax]
mov eax, dword [ebp + 8]
add eax, 0x84
mov edx, dword [ebp + 8]
add edx, 0x70
mov dword [ebp - 0xd0], ecx
mov ecx, dword [eax]
mov eax, dword [edx]
sub ecx, eax
mov eax, dword [ebp - 0xd0]
mov dword [eax], ecx
mov eax, dword [ebp + 8]
mov ecx, dword [eax]
mov eax, dword [ebp + 8]
add eax, 0x39272
mov edx, dword [ebp + 8]
add edx, 4
mov dword [ebp - 0xd4], ecx
mov ecx, dword [edx]
push ecx
mov ecx, dword [ebp - 0x14]
push ecx
push eax
mov eax, dword [ebp - 0xd4]
call eax
add esp, 0xc
cmp eax, 0
je 0x4093b2
jmp 0x4093c6
mov eax, dword [ebp + 8]
add eax, 0x6c
mov ecx, 0xffffffff
mov dword [eax], ecx
mov eax, ecx
jmp 0x4094d7
jmp 0x4094c3
mov eax, dword [ebp + 8]
add eax, 0x39272
mov ecx, dword [ebp - 0x1c]
cmp ecx, eax
jne 0x4094b1
mov eax, dword [ebp + 8]
add eax, 0x7c
mov ecx, dword [eax]
mov eax, dword [ebp + 8]
add eax, 0x8c
mov edx, dword [ecx]
mov ecx, dword [eax]
sub edx, ecx
mov eax, dword [ebp - 0x14]
cmp eax, edx
mov eax, 0
setb al
cmp eax, 0
je 0x409411
jmp 0x40942d
mov eax, dword [ebp + 8]
add eax, 0x7c
mov ecx, dword [eax]
mov eax, dword [ebp + 8]
add eax, 0x8c
mov edx, dword [ecx]
mov ecx, dword [eax]
sub edx, ecx
jmp 0x409432
mov eax, dword [ebp - 0x14]
mov edx, eax
mov dword [ebp - 0xd8], edx
mov eax, dword [ebp + 8]
add eax, 0x74
mov ecx, dword [ebp + 8]
add ecx, 0x8c
mov edx, dword [ecx]
mov ecx, dword [eax]
add ecx, edx
mov eax, dword [ebp + 8]
add eax, 0x39272
mov edx, dword [ebp - 0xd8]
push edx
push eax
push ecx
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov eax, dword [ebp + 8]
add eax, 0x8c
mov ecx, dword [eax]
mov edx, dword [ebp - 0xd8]
add ecx, edx
mov dword [eax], ecx
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 0xd8]
sub eax, ecx
mov dword [ebp - 0x14], eax
cmp eax, 0
je 0x4094ac
mov eax, dword [ebp + 8]
add eax, 0x58
mov ecx, dword [ebp - 0xd8]
mov dword [eax], ecx
mov eax, dword [ebp + 8]
add eax, 0x5c
mov ecx, dword [ebp - 0x14]
mov dword [eax], ecx
jmp 0x4094c3
mov eax, dword [ebp + 8]
add eax, 0x8c
mov ecx, dword [eax]
mov edx, dword [ebp - 0x14]
add ecx, edx
mov dword [eax], ecx
mov eax, dword [ebp + 8]
add eax, 0x5c
mov dword [ebp - 0xdc], eax
mov eax, dword [ebp - 0xdc]
mov eax, dword [eax]
leave
ret