Function at 0x417e50
Capabilities:
Parse pe header

Disassembly:
sub esp, 0x64
push ebx
push esi
mov esi, ecx
push edi
mov ecx, dword [esi]
add ecx, 0x2019ec
call fcn.004499c0
mov al, byte [esi + 0x96]
test al, al
je 0x417f1b
lea edi, [esi + 0x84]
mov ebx, 3
mov ax, word [edi]
test ax, ax
je 0x417e8f
dec eax
mov word [edi], ax
jmp 0x417f11
mov ax, word [edi + 0xc]
mov cx, word [edi + 6]
push eax
push ecx
call fcn.004798e5
mov dword [esp + 0x18], eax
fild dword [esp + 0x18]
fmul dword [0x4854cc]
call fcn.00479904
push eax
mov ecx, esi
call fcn.004192a0
mov word [edi], 0x48
call fcn.004798e5
mov dword [esp + 0x10], eax
fild dword [esp + 0x10]
fmul dword [0x4854b4]
fadd dword [0x48546c]
call fcn.00479904
mov word [edi + 6], ax
call fcn.004798e5
mov dword [esp + 0x10], eax
fild dword [esp + 0x10]
fmul dword [0x4854c8]
fadd dword [0x4851f4]
call fcn.00479904
mov dx, word [edi + 6]
push eax
push edx
push 0xa
mov ecx, esi
mov word [edi + 0xc], ax
call fcn.004192a0
add edi, 2
dec ebx
jne 0x417e7e
mov al, byte [esi + 0x82]
mov ebx, 0xf
test al, al
je 0x4180b0
inc word [esi + 0x80]
mov ax, word [esi + 0x80]
mov ecx, dword [esi]
and eax, 0xffff
push eax
push 0x48d354
add ecx, 0x18fb50
call fcn.00445f00
cmp word [esi + 0x80], 3
jne 0x417f75
push 0x400
push 0
push 0x48d34c
lea ecx, [esi + 0x83618]
call fcn.00442740
cmp word [esi + 0x80], 6
jne 0x417f96
push 0x400
push 0
push 0x48d344
lea ecx, [esi + 0x83618]
call fcn.00442740
cmp word [esi + 0x80], 9
jne 0x417fb7
push 0x400
push 0
push 0x48d33c
lea ecx, [esi + 0x83618]
call fcn.00442740
cmp word [esi + 0x80], 0xc
jne 0x417fd8
push 0x400
push 0
push 0x48d334
lea ecx, [esi + 0x83618]
call fcn.00442740
cmp word [esi + 0x80], bx
jne 0x417ff8
push 0x400
push 0
push 0x48d32c
lea ecx, [esi + 0x83618]
call fcn.00442740
cmp word [esi + 0x80], 0x67
jne 0x418019
push 0xfffffc00
push 0
push 0x48d34c
lea ecx, [esi + 0x83618]
call fcn.00442740
cmp word [esi + 0x80], 0x6a
jne 0x41803a
push 0xfffffc00
push 0
push 0x48d344
lea ecx, [esi + 0x83618]
call fcn.00442740
cmp word [esi + 0x80], 0x6d
jne 0x41805b
push 0xfffffc00
push 0
push 0x48d33c
lea ecx, [esi + 0x83618]
call fcn.00442740
cmp word [esi + 0x80], 0x70
jne 0x41807c
push 0xfffffc00
push 0
push 0x48d334
lea ecx, [esi + 0x83618]
call fcn.00442740
cmp word [esi + 0x80], 0x73
jne 0x41809d
push 0xfffffc00
push 0
push 0x48d32c
lea ecx, [esi + 0x83618]
call fcn.00442740
cmp word [esi + 0x80], 0x74
jne 0x4180b0
push 0x42
mov ecx, esi
call fcn.004198f0
mov eax, dword [esi + 0x30]
test eax, eax
jbe 0x418147
mov cl, byte [esi + 0x35]
test cl, cl
jne 0x418147
inc eax
cmp eax, 0x1e0
mov dword [esi + 0x30], eax
jne 0x4180f0
mov ecx, dword [esi]
push 0x48d318
add ecx, 0x2a6080
call fcn.0042a440
mov ecx, dword [esi]
add ecx, 0x28ed80
call fcn.004240d0
cmp dword [esi + 0x30], 0x3c0
jne 0x418118
mov ecx, dword [esi]
push 0x48d304
add ecx, 0x2a6080
call fcn.0042a440
mov ecx, dword [esi]
add ecx, 0x28ed80
call fcn.004240d0
cmp dword [esi + 0x30], 0x5a0
jne 0x418147
mov ecx, dword [esi]
push 0x48d2f0
add ecx, 0x2a6080
call fcn.0042a440
mov ecx, dword [esi]
add ecx, 0x28ed80
call fcn.004240d0
mov dword [esi + 0x30], 1
mov ax, word [esi + 0x38]
test ax, ax
jbe 0x418375
mov cl, byte [esi + 0x35]
test cl, cl
jne 0x418375
dec eax
lea ecx, [esp + 0xe]
mov word [esi + 0x38], ax
lea eax, [esp + 0x10]
push eax
push ecx
mov ecx, dword [esi]
add ecx, 0x7491d8
call fcn.00413710
mov ecx, dword [esi]
push eax
add ecx, 0x7491d8
call fcn.00413850
cmp word [esi + 0x38], 0x5a
mov edi, 4
jne 0x418261
call fcn.004798e5
movsx edx, word [esp + 0xe]
movsx eax, word [esp + 0x10]
mov dword [esp + 0x1c], edx
lea ecx, [esp + 0x20]
fild dword [esp + 0x1c]
mov dword [esp + 0x1c], eax
push ecx
mov ecx, dword [esi]
mov word [esp + 0x68], 0xd
fstp dword [esp + 0x24]
fild dword [esp + 0x20]
add ecx, 0x2019ec
mov word [esp + 0x6a], bx
mov dword [esp + 0x60], 0x3fa00000
mov dword [esp + 0x64], 0x3fa00000
fstp dword [esp + 0x28]
mov dword [esp + 0x48], 0
mov dword [esp + 0x4c], 0
mov dword [esp + 0x50], 0
mov dword [esp + 0x3c], 0
mov dword [esp + 0x40], 0
mov dword [esp + 0x44], 0
mov dword [esp + 0x30], 0
mov dword [esp + 0x34], 0
mov dword [esp + 0x38], 0
mov word [esp + 0x70], di
mov word [esp + 0x6c], 8
mov word [esp + 0x6e], 0x18
mov dword [esp + 0x2c], 0x43480000
mov dword [esp + 0x5c], 0x41200000
mov dword [esp + 0x58], 0x41200000
call fcn.00449930
mov cx, word [esi + 0x38]
mov ebx, 3
mov eax, ecx
and eax, 0xffff
cdq
idiv ebx
test edx, edx
jne 0x418375
cmp cx, 0x38
jbe 0x418375
mov eax, 0x10
mov dword [esp + 0x44], edx
mov dword [esp + 0x48], edx
mov dword [esp + 0x4c], edx
mov dword [esp + 0x38], edx
mov dword [esp + 0x3c], edx
mov dword [esp + 0x40], edx
mov dword [esp + 0x2c], edx
mov dword [esp + 0x30], edx
mov dword [esp + 0x34], edx
mov word [esp + 0x6c], di
mov dword [esp + 0x28], 0x43480000
mov word [esp + 0x64], 0xc
mov word [esp + 0x66], 0xc
mov dword [esp + 0x58], 0x41800000
mov dword [esp + 0x54], 0x41800000
mov word [esp + 0x68], ax
mov word [esp + 0x6a], ax
mov dword [esp + 0x5c], 0x3f9851ec
mov dword [esp + 0x60], 0x3f9851ec
call fcn.004798e5
movsx edx, word [esp + 0xe]
mov dword [esp + 0x1c], eax
fild dword [esp + 0x1c]
mov dword [esp + 0x1c], edx
fmul dword [0x4854c4]
fild dword [esp + 0x1c]
fsub dword [0x485424]
faddp st(1)
fstp dword [esp + 0x20]
call fcn.004798e5
mov dword [esp + 0x1c], eax
lea ecx, [esp + 0x20]
fild dword [esp + 0x1c]
movsx eax, word [esp + 0x10]
fmul dword [0x4854c4]
mov dword [esp + 0x1c], eax
push ecx
fild dword [esp + 0x20]
mov ecx, dword [esi]
add ecx, 0x2019ec
fsub dword [0x485424]
faddp st(1)
fstp dword [esp + 0x28]
call fcn.00449930
mov dx, word [esi + 0x16]
mov ecx, dword [esi]
push 0x3f800000
push edx
add ecx, 0x1e3d94
call fcn.0043f3d0
mov eax, dword [esi]
xor cl, cl
xor bl, bl
mov dl, byte [eax + 0x1e3c96]
mov byte [esp + 0x10], bl
test dl, dl
je 0x41838f
mov bl, 0x31
mov byte [esp + 0x10], bl
mov dl, byte [eax + 0x1e3c97]
test dl, dl
je 0x41839f
mov bl, 0x32
mov byte [esp + 0x10], bl
mov dl, byte [eax + 0x1e3c98]
test dl, dl
je 0x4183af
mov bl, 0x33
mov byte [esp + 0x10], bl
mov dl, byte [eax + 0x1e3c99]
test dl, dl
je 0x4183bf
mov bl, 0x34
mov byte [esp + 0x10], bl
mov dl, byte [eax + 0x1e3c9a]
test dl, dl
je 0x4183cf
mov bl, 0x35
mov byte [esp + 0x10], bl
mov dl, byte [eax + 0x1e3c9b]
test dl, dl
je 0x4183df
mov bl, 0x36
mov byte [esp + 0x10], bl
mov dl, byte [eax + 0x1e3c9c]
test dl, dl
je 0x4183ef
mov bl, 0x37
mov byte [esp + 0x10], bl
mov dl, byte [eax + 0x1e3c9d]
test dl, dl
je 0x4183ff
mov bl, 0x38
mov byte [esp + 0x10], bl
mov dl, byte [eax + 0x1e3c9e]
test dl, dl
je 0x41840f
mov bl, 0x39
mov byte [esp + 0x10], bl
mov dl, byte [eax + 0x1e3c9f]
test dl, dl
je 0x41841f
mov bl, 0x30
mov byte [esp + 0x10], bl
mov dl, byte [eax + 0x1e3ca4]
test dl, dl
je 0x418431
mov bl, 0x51
mov cl, 1
mov byte [esp + 0x10], bl
mov dl, byte [eax + 0x1e3ca5]
test dl, dl
je 0x418443
mov bl, 0x57
mov cl, 1
mov byte [esp + 0x10], bl
mov dl, byte [eax + 0x1e3ca6]
test dl, dl
je 0x418455
mov bl, 0x45
mov cl, 1
mov byte [esp + 0x10], bl
mov dl, byte [eax + 0x1e3ca7]
test dl, dl
je 0x418467
mov bl, 0x52
mov cl, 1
mov byte [esp + 0x10], bl
mov dl, byte [eax + 0x1e3ca8]
test dl, dl
je 0x418479
mov bl, 0x54
mov cl, 1
mov byte [esp + 0x10], bl
mov dl, byte [eax + 0x1e3ca9]
test dl, dl
je 0x41848b
mov bl, 0x59
mov cl, 1
mov byte [esp + 0x10], bl
mov dl, byte [eax + 0x1e3caa]
test dl, dl
je 0x41849d
mov bl, 0x55
mov cl, 1
mov byte [esp + 0x10], bl
mov dl, byte [eax + 0x1e3cab]
test dl, dl
je 0x4184af
mov bl, 0x49
mov cl, 1
mov byte [esp + 0x10], bl
mov dl, byte [eax + 0x1e3cac]
test dl, dl
je 0x4184c1
mov bl, 0x4f
mov cl, 1
mov byte [esp + 0x10], bl
mov dl, byte [eax + 0x1e3cad]
test dl, dl
je 0x4184d3
mov bl, 0x50
mov cl, 1
mov byte [esp + 0x10], bl
mov dl, byte [eax + 0x1e3cb2]
test dl, dl
je 0x4184e5
mov bl, 0x41
mov cl, 1
mov byte [esp + 0x10], bl
mov dl, byte [eax + 0x1e3cb3]
test dl, dl
je 0x4184f7
mov bl, 0x53
mov cl, 1
mov byte [esp + 0x10], bl
mov dl, byte [eax + 0x1e3cb4]
test dl, dl
je 0x418509
mov bl, 0x44
mov cl, 1
mov byte [esp + 0x10], bl
mov dl, byte [eax + 0x1e3cb5]
test dl, dl
je 0x41851b
mov bl, 0x46
mov cl, 1
mov byte [esp + 0x10], bl
mov dl, byte [eax + 0x1e3cb6]
test dl, dl
je 0x41852d
mov bl, 0x47
mov cl, 1
mov byte [esp + 0x10], bl
mov dl, byte [eax + 0x1e3cb7]
test dl, dl
je 0x41853f
mov bl, 0x48
mov cl, 1
mov byte [esp + 0x10], bl
mov dl, byte [eax + 0x1e3cb8]
test dl, dl
je 0x418551
mov bl, 0x4a
mov cl, 1
mov byte [esp + 0x10], bl
mov dl, byte [eax + 0x1e3cb9]
test dl, dl
je 0x418563
mov bl, 0x4b
mov cl, 1
mov byte [esp + 0x10], bl
mov dl, byte [eax + 0x1e3cba]
test dl, dl
je 0x418575
mov bl, 0x4c
mov cl, 1
mov byte [esp + 0x10], bl
mov dl, byte [eax + 0x1e3cc0]
test dl, dl
je 0x418587
mov bl, 0x5a
mov cl, 1
mov byte [esp + 0x10], bl
mov dl, byte [eax + 0x1e3cc1]
test dl, dl
je 0x418599
mov bl, 0x58
mov cl, 1
mov byte [esp + 0x10], bl
mov dl, byte [eax + 0x1e3cc2]
test dl, dl
je 0x4185ab
mov bl, 0x43
mov cl, 1
mov byte [esp + 0x10], bl
mov dl, byte [eax + 0x1e3cc3]
test dl, dl
je 0x4185bd
mov bl, 0x56
mov cl, 1
mov byte [esp + 0x10], bl
mov dl, byte [eax + 0x1e3cc4]
test dl, dl
je 0x4185cf
mov bl, 0x42
mov cl, 1
mov byte [esp + 0x10], bl
mov dl, byte [eax + 0x1e3cc5]
test dl, dl
je 0x4185e1
mov bl, 0x4e
mov cl, 1
mov byte [esp + 0x10], bl
mov dl, byte [eax + 0x1e3cc6]
test dl, dl
je 0x4185f3
mov bl, 0x4d
mov cl, 1
mov byte [esp + 0x10], bl
mov dl, byte [eax + 0x1e3ccd]
test dl, dl
je 0x418603
mov bl, 0x20
mov byte [esp + 0x10], bl
mov dl, byte [eax + 0x1e3ca2]
test dl, dl
je 0x418613
mov bl, 7
mov byte [esp + 0x10], bl
mov dl, byte [eax + 0x1e3d67]
test dl, dl
je 0x418623
mov bl, 7
mov byte [esp + 0x10], bl
mov dl, byte [eax + 0x1e3d64]
test dl, dl
je 0x418633
mov bl, 0xc
mov byte [esp + 0x10], bl
mov dl, byte [eax + 0x1e3d5c]
test dl, dl
je 0x418643
mov bl, 0xd
mov byte [esp + 0x10], bl
mov dl, byte [eax + 0x1e3d61]
test dl, dl
je 0x418653
mov bl, 0xe
mov byte [esp + 0x10], bl
mov dl, byte [eax + 0x1e3d5f]
test dl, dl
je 0x418663
mov bl, 0xf
mov byte [esp + 0x10], bl
test cl, cl
je 0x41866e
add bl, 0x20
mov byte [esp + 0x10], bl
mov dl, byte [eax + 0x1e3cbe]
test dl, dl
je 0x418683
test cl, cl
je 0x418683
add bl, 0xe0
mov byte [esp + 0x10], bl
mov dl, byte [eax + 0x1e3cca]
test dl, dl
je 0x418698
test cl, cl
je 0x418698
add bl, 0xe0
mov byte [esp + 0x10], bl
mov cl, byte [eax + 0x1e3cb1]
test cl, cl
je 0x4186a8
mov bl, 0x12
mov byte [esp + 0x10], bl
mov cl, byte [eax + 0x1e3d31]
test cl, cl
je 0x4186b8
mov bl, 0x13
mov byte [esp + 0x10], bl
mov cl, byte [eax + 0x1e3ccc]
test cl, cl
je 0x4186c8
mov bl, 0x14
mov byte [esp + 0x10], bl
mov cl, byte [eax + 0x1e3d4c]
test cl, cl
je 0x4186d8
mov bl, 0x15
mov byte [esp + 0x10], bl
mov cl, byte [eax + 0x1e3c95]
test cl, cl
je 0x4186e8
mov bl, 0x1b
mov byte [esp + 0x10], bl
mov cl, byte [esi + 0x35]
test cl, cl
jne 0x418710
mov cl, byte [esi + 0xe0]
test cl, cl
je 0x418710
movzx ax, byte [eax + 0x1e3c90]
xor cx, cx
mov cl, bl
add eax, ecx
mov ecx, esi
push eax
call fcn.004174b0
mov al, byte [esi + 0x82]
test al, al
je 0x418746
mov ax, word [esi + 0x80]
cmp ax, 0x64
jae 0x418746
cmp ax, 0x14
jbe 0x418746
test bl, bl
jne 0x41873d
mov edx, dword [esi]
mov al, byte [edx + 0x1e3c90]
test al, al
je 0x418746
mov word [esi + 0x80], 0x64
mov al, byte [esi + 0x35]
lea ecx, [esp + 0x18]
test al, al
mov eax, dword [esi]
lea edx, [esp + 0x14]
push ecx
mov ecx, dword [esp + 0x14]
push edx
mov dl, byte [eax + 0x1e3c90]
push ecx
mov cx, word [eax + 0x1e3c84]
push edx
mov dx, word [eax + 0x1e3c80]
push ecx
push edx
lea ecx, [esi + 0x83618]
je 0x418781
lea ecx, [esi + 0x210fb4]
call fcn.00443530
test al, al
je 0x4187a2
mov eax, dword [esp + 0x14]
mov ecx, esi
push eax
call fcn.004198f0
mov ecx, dword [esp + 0x18]
push ecx
mov ecx, esi
call fcn.004198f0
mov ecx, esi
call fcn.00417dd0
test al, al
je 0x4187c3
cmp word [esp + 0x14], 0x1f4
mov ecx, dword [esi]
jne 0x4187bc
push 0
jmp 0x4187be
push 1
call fcn.00437030
mov ecx, dword [esi]
xor edx, edx
mov dx, word [esi + 0x1e]
mov eax, dword [ecx + 0x1e3c80]
sub eax, edx
cdq
xor eax, edx
sub eax, edx
cmp eax, 2
jge 0x418826
xor eax, eax
mov ax, word [esi + 0x20]
mov edx, eax
mov eax, dword [ecx + 0x1e3c84]
sub eax, edx
cdq
xor eax, edx
sub eax, edx
cmp eax, 2
jge 0x418826
xor ax, ax
mov al, bl
cmp word [esi + 0x1c], ax
jne 0x418826
mov eax, dword [esi + 0x24]
pop edi
inc eax
mov dword [esi + 0x24], eax
mov dx, word [ecx + 0x1e3c80]
mov word [esi + 0x1e], dx
mov ax, word [ecx + 0x1e3c84]
mov word [esi + 0x20], ax
pop esi
pop ebx
add esp, 0x64
ret
mov dword [esi + 0x24], 0
mov dx, word [ecx + 0x1e3c80]
mov word [esi + 0x1e], dx
mov ax, word [ecx + 0x1e3c84]
xor cx, cx
mov word [esi + 0x20], ax
mov cl, bl
pop edi
mov word [esi + 0x1c], cx
pop esi
pop ebx
add esp, 0x64
ret