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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0xa8
mov esi, esp
mov dword [esi + 0x78], ecx
mov eax, dword [0x4a62c0]
xor eax, ebp
mov dword [esi + 0xa0], eax
mov eax, 0x518015b0
jmp 0x421400
mov eax, dword [0x4a7fd0]
mov ebx, 0x3f8acecb
mov edi, 0x97a37b76
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
mov eax, 0x97a37b76
sete cl
cmove eax, ebx
cmp dword [0x4a7fcc], 0xa
setl dl
cmovge eax, edi
xor dl, cl
cmovne eax, ebx
nop word cs:[eax + eax]
cmp eax, 0xf5368010
jg 0x421480
cmp eax, 0xb02e749b
jg 0x421500
cmp eax, 0x97a37b75
jg 0x4215c9
cmp eax, 0x8f426f27
jg 0x421702
cmp eax, 0x87eabda6
jg 0x42199c
cmp eax, 0x8329e2e5
je 0x422030
cmp eax, 0x872f3a52
jne 0x421400
mov eax, dword [esi + 0x58]
mov ecx, dword [eax + 0x20]
mov eax, dword [eax + 0x24]
mov dword [esi + 0x18], eax
mov dword [esi + 0x10], ecx
mov eax, 0x82ab57ad
nop dword [eax]
cmp eax, 0x82ab57ad
je 0x421473
cmp eax, 0xb1d50c7b
jne 0x421460
jmp 0x42204c
mov eax, 0xb1d50c7b
jmp 0x421460
cmp eax, 0x367addb2
jg 0x421570
cmp eax, 0xf8051e4
jg 0x421608
cmp eax, 0x5a08ede
jg 0x421771
cmp eax, 0xff7af257
jg 0x4219c7
cmp eax, 0xf5368011
je 0x4220a5
cmp eax, 0xff34ed2e
jne 0x421400
mov ebx, dword [esi + 0x30]
mov ecx, ebx
call fcn.00409790
mov eax, 0x9c08386
mov dword [esi], ebx
nop word cs:[eax + eax]
cmp eax, 0x31e4c986
je 0x42210b
cmp eax, 0x9c08386
jne 0x4214e0
mov ecx, dword [esi]
call fcn.00409f30
mov eax, 0x31e4c986
jmp 0x4214e0
cmp eax, 0xbda3d5dd
jg 0x42165a
cmp eax, 0xb56f95ed
jg 0x42179c
cmp eax, 0xb475d380
jg 0x421a82
cmp eax, 0xb02e749c
je 0x422118
cmp eax, 0xb2387596
jne 0x421400
mov eax, dword [esi + 0x78]
mov ecx, dword [ebp + 0x14]
mov dword [esi + 0x34], eax
call fcn.004108d0
mov ecx, eax
xor ecx, 0xffffbfff
mov edx, 0x53969a77
test ecx, eax
mov eax, 0x448e9c95
cmove eax, edx
jmp 0x421400
cmp eax, 0x53969a76
jle 0x421690
cmp eax, 0x67ff5aa7
jg 0x4217c7
cmp eax, 0x629dcebe
jg 0x421aa8
cmp eax, 0x53969a77
je 0x4213b8
cmp eax, 0x5677d00e
jne 0x421400
mov ecx, dword [ebp + 0x14]
lea edi, [esi + 0x98]
push edi
call fcn.0041b070
push edi
call fcn.00425db0
add esp, 4
mov eax, 0xb56f95ee
jmp 0x421400
cmp eax, 0xa8ae4b47
jg 0x42186b
cmp eax, 0x9b29b414
jg 0x421af0
cmp eax, 0x97a37b76
je 0x422122
cmp eax, 0x97b9823e
jne 0x421400
mov eax, dword [esi + 0x20]
mov dword [eax], 0
mov eax, 0x154ce209
jmp 0x421400
cmp eax, 0x26907602
jg 0x421896
cmp eax, 0x18bc554a
jg 0x421bc2
cmp eax, 0xf8051e5
je 0x42212c
cmp eax, 0x154ce209
jne 0x421400
mov eax, dword [0x4a7fd0]
mov ebx, 0x87eabda7
mov edi, 0x7a73c482
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
mov eax, 0x7a73c482
jmp 0x4213d9
cmp eax, 0xdc790f92
jg 0x4218ec
cmp eax, 0xd1aa2c0d
jg 0x421be2
cmp eax, 0xbda3d5de
je 0x422136
cmp eax, 0xca4c6a59
jne 0x421400
mov eax, 0x93586f5d
jmp 0x421400
cmp eax, 0x448e9c94
jg 0x42194a
cmp eax, 0x3fe390cd
jg 0x421c29
cmp eax, 0x367addb3
je 0x42223e
cmp eax, 0x3f8acecb
jne 0x421400
mov eax, dword [0x4a7fd0]
mov edi, 0x67ff5aa8
mov ebx, 0x97a37b76
lea ecx, [eax + 1]
imul ecx, eax
mov eax, 0x97a37b76
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete cl
cmove eax, edi
cmp dword [0x4a7fcc], 0xa
setl dl
cmovge eax, ebx
xor dl, cl
movzx edx, byte [ebp + 0x1c]
cmovne eax, edi
mov byte [esi + 0x2e], dl
jmp 0x421400
cmp eax, 0x936231e8
jg 0x421c85
cmp eax, 0x8f426f28
je 0x422254
cmp eax, 0x93586f5d
jne 0x421400
mov edx, dword [0x4a7fd0]
mov ecx, dword [0x4a7fcc]
mov edi, 0x863425d
lea eax, [edx + 1]
imul eax, edx
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
sete dl
cmp ecx, 0xa
setl dh
xor dh, dl
mov edx, 0xca4c6a59
cmovne edx, edi
cmp eax, 0xffffffff
mov eax, edx
cmove eax, edi
cmp ecx, 0xa
cmovge eax, edx
mov edx, dword [ebp + 0x14]
mov dword [esi + 0x88], edx
jmp 0x421400
cmp eax, 0x990536b
jg 0x421cc2
cmp eax, 0x5a08edf
je 0x422287
cmp eax, 0x863425d
jne 0x421400
mov eax, 0x5a08edf
jmp 0x421400
cmp eax, 0xbab534f3
jg 0x421ce2
cmp eax, 0xb56f95ee
je 0x4222b1
cmp eax, 0xba4f9f9e
jne 0x421400
mov eax, 0xff7af258
jmp 0x421400
cmp eax, 0x6ea04729
jg 0x421d2c
cmp eax, 0x67ff5aa8
je 0x42230a
cmp eax, 0x6dc2be57
jne 0x421400
lea ecx, [ebp + 0xc]
mov eax, dword [esi + 0x40]
vmovsd xmm0, qword [ecx]
vmovsd qword [eax], xmm0
mov eax, dword [esi + 0x28]
mov ecx, dword [esi + 0x40]
mov edx, dword [esi + 0x34]
mov edi, dword [esi + 0x5c]
movsx ebx, byte [esi + 0x1f]
sub esp, 0x18
vmovsd xmm0, qword [ecx]
vmovsd qword [esp + 8], xmm0
mov dword [esp + 0x14], edi
mov dword [esp + 0x10], ebx
mov dword [esp + 4], eax
mov dword [esp], edx
call fcn.00426c90
add esp, 0x18
mov eax, dword [esi + 0x28]
mov ebx, 0xeed2887
mov edi, 0xf5368011
vmovsd xmm0, qword [eax]
lea eax, [ebp + 0xc]
vmovsd qword [eax], xmm0
mov eax, dword [esi + 0x28]
mov eax, dword [esi + 0x20]
mov dword [eax], 0
mov eax, dword [0x4a7fd0]
lea ecx, [eax - 1]
imul ecx, eax
mov eax, 0xf5368011
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
jmp 0x4213d9
cmp eax, 0xabc9a27c
jg 0x421d4c
cmp eax, 0xa8ae4b48
je 0x422314
cmp eax, 0xabb561e1
jne 0x421400
mov eax, 0x5035c388
jmp 0x421400
cmp eax, 0x3034acc0
jg 0x421e5f
cmp eax, 0x26907603
je 0x4223d2
cmp eax, 0x2eea1449
jne 0x421400
mov ecx, dword [ebp + 0x14]
mov edx, 0x82ab57ad
mov eax, dword [ecx + 0x20]
mov ecx, dword [ecx + 0x24]
nop word cs:[eax + eax]
cmp edx, 0x82ab57ad
je 0x4218e5
cmp edx, 0xb1d50c7b
jne 0x4218d0
jmp 0x42242e
mov edx, 0xb1d50c7b
jmp 0x4218d0
cmp eax, 0xe672683b
jg 0x421ed7
cmp eax, 0xdc790f93
je 0x422448
cmp eax, 0xe064047d
jne 0x421400
mov eax, dword [esi + 0x54]
mov ecx, dword [eax + 0x20]
mov eax, dword [eax + 0x24]
mov dword [esi + 0x18], eax
mov dword [esi + 0x10], ecx
mov eax, 0x82ab57ad
nop word cs:[eax + eax]
cmp eax, 0x82ab57ad
je 0x421943
cmp eax, 0xb1d50c7b
jne 0x421930
jmp 0x422455
mov eax, 0xb1d50c7b
jmp 0x421930
cmp eax, 0x518015af
jle 0x421fff
cmp eax, 0x518015b0
je 0x4224ae
cmp eax, 0x5303326e
jne 0x421400
mov ecx, dword [esi + 0x58]
mov edx, 0x82ab57ad
mov eax, dword [ecx + 0x20]
mov ecx, dword [ecx + 0x24]
nop dword [eax]
cmp edx, 0x82ab57ad
je 0x421995
cmp edx, 0xb1d50c7b
jne 0x421980
jmp 0x4224ff
mov edx, 0xb1d50c7b
jmp 0x421980
cmp eax, 0x87eabda7
je 0x422513
cmp eax, 0x8c9b0cbb
jne 0x421400
mov ecx, dword [esi + 0x3c]
push dword [esi + 0x30]
call fcn.004373d0
mov eax, 0xdb82b88e
jmp 0x421400
cmp eax, 0xff7af258
je 0x422547
cmp eax, 0x2f37ef0
jne 0x421400
mov ecx, dword [esi + 0x14]
mov eax, dword [esi + 0x30]
mov edx, dword [0x4a7fc8]
mov ebx, 0x582d04a
lea edi, [edx - 1]
imul edi, edx
not edi
or edi, 0xfffffffe
cmp edi, 0xffffffff
mov edi, 0x4c3c0ec8
sete dl
cmp dword [0x4a7fc4], 0xa
setl dh
or dh, dl
mov edx, 0x9a860d85
cmovne edx, edi
mov edi, 0x9a860d85
cmovne edi, ebx
mov ebx, 0xd5625744
nop word cs:[eax + eax]
cmp ebx, 0x582d049
jle 0x421a60
cmp ebx, 0x4c3c0ec8
je 0x421a74
cmp ebx, 0x4baed6e9
je 0x42257b
cmp ebx, 0x582d04a
jne 0x421a30
mov ebx, edx
jmp 0x421a30
cmp ebx, 0x9a860d85
je 0x421a7b
cmp ebx, 0xd5625744
jne 0x421a30
mov ebx, edi
jmp 0x421a30
mov ebx, 0x4baed6e9
jmp 0x421a30
mov ebx, 0x582d04a
jmp 0x421a30
cmp eax, 0xb475d381
je 0x42258b
cmp eax, 0xb5354315
jne 0x421400
mov eax, dword [ebp + 0x14]
mov dword [esi + 0x58], eax
mov eax, 0xb475d381
jmp 0x421400
cmp eax, 0x629dcebf
je 0x4225b1
cmp eax, 0x669a86fd
jne 0x421400
mov ebx, dword [esi + 0x14]
mov ecx, ebx
call fcn.00409790
mov eax, 0x9c08386
mov dword [esi], ebx
nop
cmp eax, 0x31e4c986
je 0x4225bb
cmp eax, 0x9c08386
jne 0x421ad0
mov ecx, dword [esi]
call fcn.00409f30
mov eax, 0x31e4c986
jmp 0x421ad0
cmp eax, 0x9b29b415
je 0x4225c8
cmp eax, 0x9e6bce19
jne 0x421400
mov ecx, dword [esi + 0x3c]
push dword [esi + 0x24]
call fcn.00437270
mov ecx, dword [esi + 0x14]
mov eax, dword [esi + 0x24]
mov edx, dword [0x4a7fc8]
lea edi, [edx + 1]
imul edi, edx
mov edx, edi
xor edx, 0xfffffffe
test edx, edi
mov edi, 0x4c3c0ec8
setne dl
sete dh
cmp dword [0x4a7fc4], 0xa
setge bl
setl bh
or bl, dl
xor bh, dh
mov edx, 0x9a860d85
xor bl, 1
or bl, bh
mov ebx, 0x582d04a
cmovne edx, edi
mov edi, 0x9a860d85
cmovne edi, ebx
mov ebx, 0xd5625744
nop word cs:[eax + eax]
cmp ebx, 0x582d049
jle 0x421ba0
cmp ebx, 0x4c3c0ec8
je 0x421bb4
cmp ebx, 0x4baed6e9
je 0x4225db
cmp ebx, 0x582d04a
jne 0x421b70
mov ebx, edx
jmp 0x421b70
cmp ebx, 0x9a860d85
je 0x421bbb
cmp ebx, 0xd5625744
jne 0x421b70
mov ebx, edi
jmp 0x421b70
mov ebx, 0x4baed6e9
jmp 0x421b70
mov ebx, 0x582d04a
jmp 0x421b70
cmp eax, 0x18bc554b
je 0x422614
cmp eax, 0x2118ce43
jne 0x421400
mov eax, 0x2f37ef0
jmp 0x421400
cmp eax, 0xd1aa2c0e
je 0x422632
cmp eax, 0xdb82b88e
jne 0x421400
mov ecx, dword [esi + 0x3c]
push dword [esi + 0x30]
call fcn.004373d0
mov eax, dword [0x4a7fd0]
mov edi, 0x2118ce43
mov ebx, 0x8c9b0cbb
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
mov eax, 0x8c9b0cbb
jmp 0x4222ed
cmp eax, 0x3fe390ce
je 0x42267a
cmp eax, 0x40e8b409
jne 0x421400
mov edx, dword [0x4a7fd0]
mov ecx, dword [0x4a7fcc]
mov edi, 0x8c9b0cbb
lea eax, [edx + 1]
imul eax, edx
mov edx, eax
xor edx, 0xfffffffe
test edx, eax
sete bl
cmp ecx, 0xa
setl bh
xor bh, bl
mov ebx, 0xdb82b88e
cmovne edi, ebx
test edx, eax
mov eax, edi
cmove eax, ebx
cmp ecx, 0xa
mov ecx, dword [esi + 0x30]
cmovge eax, edi
jmp 0x421400
cmp eax, 0x936231e9
je 0x4226ac
cmp eax, 0x94622f5f
jne 0x421400
mov eax, dword [0x4a7fd0]
mov edi, 0x6dc2be57
mov ebx, 0xf5368011
lea ecx, [eax + 1]
imul ecx, eax
mov eax, 0xf5368011
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
jmp 0x4222ed
cmp eax, 0x990536c
je 0x4226e0
cmp eax, 0xeed2887
jne 0x421400
mov eax, 0xad766eeb
jmp 0x421400
cmp eax, 0xbab534f4
je 0x4226ea
cmp eax, 0xbd3597ee
jne 0x421400
mov edx, dword [0x4a7fd0]
mov ecx, dword [0x4a7fcc]
mov edi, 0xb56f95ee
lea eax, [edx + 1]
imul eax, edx
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
sete dl
cmp ecx, 0xa
setl dh
xor dh, dl
mov edx, 0x5677d00e
jmp 0x4228e5
cmp eax, 0x6ea0472a
je 0x4226f4
cmp eax, 0x7a73c482
jne 0x421400
mov eax, 0x87eabda7
jmp 0x421400
cmp eax, 0xabc9a27d
je 0x4226fe
cmp eax, 0xad766eeb
jne 0x421400
mov eax, dword [esi + 0x44]
mov eax, dword [esi + 0x14]
mov ecx, dword [0x4a8008]
mov edx, dword [0x4a8004]
lea edi, [ecx + 1]
mov dword [esi + 0x10], eax
mov eax, 0x9ce1b51e
imul edi, ecx
mov ecx, 0xabae72c9
not edi
or edi, 0xfffffffe
cmp edi, 0xffffffff
mov edi, 0xabae72c9
sete bl
sete byte [esi + 0x94]
cmove ecx, eax
cmp edx, 0xa
setl dl
cmovge ecx, edi
setl byte [esi + 0x97]
mov edi, 0x3052438d
xor dl, bl
cmovne ecx, eax
nop dword [eax + eax]
cmp edi, 0xf51f77ea
jg 0x421df0
cmp edi, 0x9ce1b51e
je 0x421e3e
cmp edi, 0xabae72c9
je 0x421e48
cmp edi, 0xda756cad
jne 0x421dc0
mov eax, dword [esi + 0xc]
mov edi, 0x1373677d
mov dword [esi + 0x18], eax
jmp 0x421dc0
cmp edi, 0xf51f77eb
je 0x421e52
cmp edi, 0x1373677d
je 0x422757
cmp edi, 0x3052438d
jne 0x421dc0
movzx ebx, byte [esi + 0x94]
movzx eax, byte [esi + 0x97]
mov edi, 0xabae72c9
mov edx, 0xf51f77eb
mov bh, al
xor bh, bl
test al, al
mov eax, 0xabae72c9
cmovne edi, edx
test bl, bl
cmove edi, eax
test bh, bh
cmovne edi, edx
jmp 0x421dc0
mov edi, 0xda756cad
jmp 0x421dc0
mov edi, 0xf51f77eb
jmp 0x421dc0
mov eax, dword [esi + 0x10]
mov edi, ecx
mov dword [esi + 0xc], eax
jmp 0x421dc0
cmp eax, 0x3034acc1
je 0x4228b6
cmp eax, 0x30c445de
jne 0x421400
lea ecx, [esi + 0x98]
call fcn.0041b1b0
mov eax, dword [esi + 0x50]
mov dword [esi + 0x3c], eax
mov eax, dword [esi + 0x14]
mov eax, dword [esi + 0x14]
mov dword [esi + 0xc], eax
mov eax, 0xf89c3017
nop word cs:[eax + eax]
cmp eax, 0x67abbc31
je 0x4228fb
cmp eax, 0xf89c3017
jne 0x421ea0
mov ecx, dword [esi + 0xc]
sub esp, 4
movzx eax, byte [esi + 0x94]
mov byte [esp], al
call fcn.0040b080
mov eax, dword [esi + 0xc]
mov dword [esi + 0x98], eax
mov eax, 0x67abbc31
jmp 0x421ea0
cmp eax, 0xe672683c
je 0x4229a9
cmp eax, 0xeb4af167
jne 0x421400
mov ecx, dword [0x4a8008]
mov edi, dword [0x4a8004]
mov ebx, 0xabae72c9
lea eax, [ecx - 1]
imul eax, ecx
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
sete cl
cmp edi, 0xa
setl dl
xor dl, cl
mov ecx, 0x9ce1b51e
cmovne ebx, ecx
cmp eax, 0xffffffff
mov eax, dword [esi + 0x70]
mov edx, ebx
mov dword [esi + 0x10], eax
mov ecx, dword [esi + 0x74]
mov eax, dword [esi + 0x14]
sete byte [esi + 0x94]
mov dword [esi + 0x18], eax
mov eax, 0x9ce1b51e
cmove edx, eax
cmp edi, 0xa
mov edi, 0x3052438d
cmovge edx, ebx
setl byte [esi + 0x97]
nop word cs:[eax + eax]
cmp edi, 0xf51f77ea
jg 0x421f90
cmp edi, 0x9ce1b51e
je 0x421fde
cmp edi, 0xabae72c9
je 0x421fe8
cmp edi, 0xda756cad
jne 0x421f60
mov eax, dword [esi + 0xc]
mov edi, 0x1373677d
mov dword [esi + 0x38], eax
jmp 0x421f60
cmp edi, 0xf51f77eb
je 0x421ff2
cmp edi, 0x1373677d
je 0x4229ec
cmp edi, 0x3052438d
jne 0x421f60
movzx ecx, byte [esi + 0x94]
movzx ebx, byte [esi + 0x97]
mov edi, 0xabae72c9
mov eax, 0xf51f77eb
mov ch, bl
xor ch, cl
test bl, bl
mov ebx, 0xabae72c9
cmovne edi, eax
test cl, cl
cmove edi, ebx
test ch, ch
cmovne edi, eax
jmp 0x421f60
mov edi, 0xda756cad
jmp 0x421f60
mov edi, 0xf51f77eb
jmp 0x421f60
mov eax, dword [esi + 0x18]
mov edi, edx
mov dword [esi + 0xc], eax
jmp 0x421f60
cmp eax, 0x448e9c95
jne 0x422c06
mov eax, dword [0x4a7fd0]
mov ebx, 0xe672683c
mov edi, 0x6ea0472a
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
mov eax, 0x6ea0472a
jmp 0x4213d9
mov eax, dword [esi + 0x28]
mov eax, dword [esi + 0x20]
mov eax, dword [eax]
mov dword [esi + 0x5c], eax
movzx eax, byte [ebp + 0x18]
mov byte [esi + 0x1f], al
mov eax, 0x94622f5f
jmp 0x421400
mov edi, dword [0x4a7fd0]
mov edx, dword [0x4a7fcc]
lea eax, [edi + 1]
imul eax, edi
mov edi, 0x5303326e
mov ebx, eax
xor ebx, 0xfffffffe
test ebx, eax
sete cl
cmp edx, 0xa
setl ch
xor ch, cl
mov ecx, 0x629dcebf
cmovne edi, ecx
test ebx, eax
mov eax, edi
cmove eax, ecx
mov ecx, dword [esi + 0x18]
cmp edx, 0xa
cmovge eax, edi
mov dword [esi + 4], ecx
mov ecx, dword [esi + 0x10]
mov dword [esi], ecx
mov ecx, dword [esi + 4]
mov edx, dword [esi]
mov dword [esi + 0x68], edx
mov dword [esi + 0x6c], ecx
jmp 0x421400
lea ecx, [ebp + 0xc]
mov eax, dword [esi + 0x40]
vmovsd xmm0, qword [ecx]
vmovsd qword [eax], xmm0
mov eax, dword [esi + 0x28]
mov ecx, dword [esi + 0x40]
mov edx, dword [esi + 0x34]
mov edi, dword [esi + 0x5c]
movsx ebx, byte [esi + 0x1f]
sub esp, 0x18
vmovsd xmm0, qword [ecx]
vmovsd qword [esp + 8], xmm0
mov dword [esp + 0x14], edi
mov dword [esp + 0x10], ebx
mov dword [esp + 4], eax
mov dword [esp], edx
call fcn.00426c90
add esp, 0x18
mov eax, dword [esi + 0x28]
vmovsd xmm0, qword [eax]
lea eax, [ebp + 0xc]
vmovsd qword [eax], xmm0
mov eax, dword [esi + 0x28]
mov eax, dword [esi + 0x20]
mov dword [eax], 0
mov eax, 0x6dc2be57
jmp 0x421400
mov eax, dword [esi + 0x30]
mov eax, 0x9b29b415
jmp 0x421400
mov eax, 0x936231e9
jmp 0x421400
mov eax, 0x3f8acecb
jmp 0x421400
mov eax, 0x3034acc1
jmp 0x421400
mov ecx, dword [0x4a8008]
mov edi, dword [0x4a8004]
mov ebx, 0xabae72c9
lea eax, [ecx + 1]
imul eax, ecx
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
sete cl
cmp edi, 0xa
setl dl
xor dl, cl
mov ecx, 0x9ce1b51e
cmovne ebx, ecx
cmp eax, 0xffffffff
mov eax, dword [esi + 0x68]
mov edx, ebx
mov dword [esi + 0x10], eax
mov ecx, dword [esi + 0x6c]
mov eax, dword [esi + 0x14]
sete byte [esi + 0x94]
mov dword [esi + 0x18], eax
mov eax, 0x9ce1b51e
cmove edx, eax
cmp edi, 0xa
mov edi, 0x3052438d
cmovge edx, ebx
setl byte [esi + 0x97]
nop dword [eax]
cmp edi, 0xf51f77ea
jg 0x4221d0
cmp edi, 0x9ce1b51e
je 0x42221d
cmp edi, 0xabae72c9
je 0x422227
cmp edi, 0xda756cad
jne 0x4221a0
mov eax, dword [esi + 0xc]
mov edi, 0x1373677d
mov dword [esi + 0x38], eax
jmp 0x4221a0
cmp edi, 0xf51f77eb
je 0x422231
cmp edi, 0x1373677d
je 0x422a08
cmp edi, 0x3052438d
jne 0x4221a0
movzx ecx, byte [esi + 0x94]
mov ah, byte [esi + 0x97]
mov ebx, 0xabae72c9
mov edi, 0xf51f77eb
mov al, cl
xor al, ah
cmovne ebx, edi
test ah, ah
mov eax, 0xf51f77eb
mov edi, ebx
cmovne edi, eax
test cl, cl
cmove edi, ebx
jmp 0x4221a0
mov edi, 0xda756cad
jmp 0x4221a0
mov edi, 0xf51f77eb
jmp 0x4221a0
mov eax, dword [esi + 0x18]
mov edi, edx
mov dword [esi + 0xc], eax
jmp 0x4221a0
cmp byte [esi + 0x2f], 0
mov eax, 0x40e8b409
mov ecx, 0xd1aa2c0e
cmovne eax, ecx
jmp 0x421400
mov edx, dword [0x4a7fd0]
mov ecx, dword [0x4a7fcc]
mov edi, 0x3fe390ce
lea eax, [edx + 1]
imul eax, edx
mov edx, eax
xor edx, 0xfffffffe
test edx, eax
sete bl
cmp ecx, 0xa
setl bh
xor bh, bl
mov ebx, 0xe064047d
jmp 0x4229d7
mov ecx, dword [esi + 0x88]
call fcn.004108d0
mov ecx, eax
xor ecx, 0xfffffe3f
mov edx, 0xad766eeb
and ecx, eax
mov eax, 0x8329e2e5
cmp ecx, 0x40
cmove eax, edx
jmp 0x421400
mov ecx, dword [ebp + 0x14]
lea edi, [esi + 0x98]
push edi
call fcn.0041b070
push edi
call fcn.00425db0
add esp, 4
mov dword [esi + 0x50], eax
mov eax, dword [0x4a7fd0]
mov edi, 0xf8051e5
mov ebx, 0x5677d00e
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
mov eax, 0x5677d00e
sete cl
cmove eax, edi
cmp dword [0x4a7fcc], 0xa
setl dl
cmovge eax, ebx
xor dl, cl
cmovne eax, edi
jmp 0x421400
mov eax, 0x26907603
jmp 0x421400
mov ecx, dword [esi + 0x3c]
push dword [esi + 0x24]
call fcn.00437270
mov ecx, dword [esi + 0x14]
mov eax, dword [esi + 0x24]
mov edi, dword [0x4a7fc8]
lea edx, [edi + 1]
mov dword [esi + 0x10], eax
imul edx, edi
mov edi, 0x9a860d85
test dl, 1
sete bl
cmp dword [0x4a7fc4], 0xa
setge bh
setl al
or bh, dl
xor al, bl
mov edx, 0x9a860d85
not bh
or bh, al
mov eax, 0x4c3c0ec8
test bh, 1
mov ebx, 0x582d04a
cmovne edi, ebx
cmovne edx, eax
mov ebx, 0xd5625744
nop word cs:[eax + eax]
cmp ebx, 0x582d049
jle 0x4223b0
cmp ebx, 0x4c3c0ec8
je 0x4223c4
cmp ebx, 0x4baed6e9
je 0x422a27
cmp ebx, 0x582d04a
jne 0x422380
mov ebx, edx
jmp 0x422380
cmp ebx, 0x9a860d85
je 0x4223cb
cmp ebx, 0xd5625744
jne 0x422380
mov ebx, edi
jmp 0x422380
mov ebx, 0x4baed6e9
jmp 0x422380
mov ebx, 0x582d04a
jmp 0x422380
lea edx, [ebp + 0xc]
movzx eax, byte [esi + 0x2e]
mov ecx, dword [edx]
mov edx, dword [edx + 4]
and eax, 1
mov dword [esi + 0x90], edx
mov dword [esi + 0x8c], ecx
mov ecx, dword [esi + 0x34]
mov ecx, dword [ecx]
mov edx, dword [ecx + 0x24]
mov ecx, dword [esi + 0x34]
sub esp, 0x18
vmovsd xmm0, qword [esi + 0x8c]
movsx edi, byte [ebp + 0x18]
mov ebx, dword [ebp + 0x14]
vmovsd qword [esp + 4], xmm0
mov dword [esp + 0x10], edi
mov edi, dword [ebp + 8]
mov dword [esp + 0x14], eax
mov dword [esp + 0xc], ebx
mov dword [esp], edi
call edx
mov eax, 0xabb561e1
jmp 0x421400
mov dword [esi + 4], ecx
mov dword [esi], eax
mov eax, dword [esi + 4]
mov ecx, dword [esi]
mov dword [esi + 0x74], eax
mov dword [esi + 0x70], ecx
mov eax, 0xeb4af167
jmp 0x421400
mov eax, dword [esi + 0x24]
mov eax, 0x9b29b415
jmp 0x421400
mov edi, dword [0x4a7fd0]
mov edx, dword [0x4a7fcc]
lea eax, [edi + 1]
imul eax, edi
mov edi, 0x3fe390ce
mov ebx, eax
xor ebx, 0xfffffffe
test ebx, eax
sete cl
cmp edx, 0xa
setl ch
xor ch, cl
mov ecx, 0x990536c
cmovne edi, ecx
test ebx, eax
mov eax, edi
cmove eax, ecx
mov ecx, dword [esi + 0x18]
cmp edx, 0xa
cmovge eax, edi
mov dword [esi + 4], ecx
mov ecx, dword [esi + 0x10]
mov dword [esi], ecx
mov ecx, dword [esi + 4]
mov edx, dword [esi]
mov dword [esi + 0x60], edx
mov dword [esi + 0x64], ecx
jmp 0x421400
push eax
sub esp, 0x14
mov eax, esp
mov dword [esi + 0x14], eax
sub esp, 0x18
mov eax, esp
mov dword [esi + 0x24], eax
sub esp, 0x18
mov eax, esp
mov dword [esi + 0x30], eax
push eax
mov eax, esp
mov dword [esi + 0x20], eax
sub esp, 8
mov eax, esp
mov dword [esi + 0x28], eax
sub esp, 8
mov eax, esp
mov dword [esi + 0x40], eax
sub esp, 8
mov eax, esp
mov dword [esi + 0x44], eax
sub esp, 8
mov eax, esp
mov dword [esi + 0x48], eax
sub esp, 8
mov eax, esp
mov dword [esi + 0x4c], eax
mov eax, 0xb2387596
jmp 0x421400
mov dword [esi], eax
mov dword [esi + 4], ecx
mov eax, dword [esi]
mov eax, dword [esi + 4]
mov eax, 0x872f3a52
jmp 0x421400
mov edx, dword [0x4a7fd0]
mov ecx, dword [0x4a7fcc]
mov edi, 0xba4f9f9e
lea eax, [edx + 1]
imul eax, edx
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
sete dl
cmp ecx, 0xa
setl dh
xor dh, dl
mov edx, 0x7a73c482
jmp 0x4228e5
mov edx, dword [0x4a7fd0]
mov ecx, dword [0x4a7fcc]
mov edi, 0x93586f5d
lea eax, [edx + 1]
imul eax, edx
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
sete dl
cmp ecx, 0xa
setl dh
xor dh, dl
mov edx, 0xca4c6a59
jmp 0x4228e5
push eax
call fcn.00437600
mov eax, 0xff34ed2e
jmp 0x421400
mov eax, dword [0x4a7fd0]
mov ebx, 0x872f3a52
mov edi, 0x5303326e
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
mov eax, 0x5303326e
jmp 0x4213d9
mov eax, 0xbda3d5de
jmp 0x421400
mov eax, dword [esi + 0x14]
mov eax, 0x5035c388
jmp 0x421400
mov eax, dword [esi + 0x20]
mov eax, dword [ebp + 0x14]
mov dword [esi + 0x54], eax
mov eax, 0x8f426f28
jmp 0x421400
push eax
call fcn.00437600
mov edx, dword [0x4a7fd0]
mov ecx, dword [0x4a7fcc]
mov edi, 0xa8ae4b48
lea eax, [edx + 1]
imul eax, edx
mov edx, eax
xor edx, 0xfffffffe
test edx, eax
sete bl
cmp ecx, 0xa
setl bh
xor bh, bl
mov ebx, 0xb02e749c
jmp 0x4229d7
mov eax, dword [esi + 0x60]
mov ecx, dword [esi + 0x64]
cmp eax, 1
mov eax, 0xb5354315
sbb ecx, 0
mov ecx, 0x97b9823e
cmovl eax, ecx
jmp 0x421400
mov edx, dword [0x4a7fd0]
mov ecx, dword [0x4a7fcc]
mov edi, 0x9e6bce19
lea eax, [edx + 1]
imul eax, edx
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
sete dl
cmp ecx, 0xa
setl dh
xor dh, dl
mov edx, 0xa8ae4b48
cmovne edx, edi
cmp eax, 0xffffffff
mov eax, edx
cmove eax, edi
cmp ecx, 0xa
mov ecx, dword [esi + 0x24]
cmovge eax, edx
jmp 0x421400
mov ecx, dword [esi + 0x54]
mov edx, 0x82ab57ad
mov eax, dword [ecx + 0x20]
mov ecx, dword [ecx + 0x24]
nop dword [eax + eax]
cmp edx, 0x82ab57ad
je 0x4226a5
cmp edx, 0xb1d50c7b
jne 0x422690
jmp 0x422a39
mov edx, 0xb1d50c7b
jmp 0x422690
mov ebx, dword [esi + 0x24]
mov ecx, ebx
call fcn.00409790
mov eax, 0x9c08386
mov dword [esi], ebx
nop dword [eax]
cmp eax, 0x31e4c986
je 0x422a4d
cmp eax, 0x9c08386
jne 0x4226c0
mov ecx, dword [esi]
call fcn.00409f30
mov eax, 0x31e4c986
jmp 0x4226c0
mov eax, 0x18bc554b
jmp 0x421400
mov eax, 0xbd3597ee
jmp 0x421400
mov eax, 0xe672683c
jmp 0x421400
lea ecx, [esi + 0x98]
call fcn.0041b1b0
mov eax, dword [esi + 0x50]
mov dword [esi + 0x3c], eax
mov eax, dword [esi + 0x14]
mov eax, dword [esi + 0x14]
mov dword [esi + 0xc], eax
mov eax, 0xf89c3017
nop dword [eax]
cmp eax, 0x67abbc31
je 0x422a57
cmp eax, 0xf89c3017
jne 0x422720
mov ecx, dword [esi + 0xc]
sub esp, 4
movzx eax, byte [esi + 0x94]
mov byte [esp], al
call fcn.0040b080
mov eax, dword [esi + 0xc]
mov dword [esi + 0x98], eax
mov eax, 0x67abbc31
jmp 0x422720
mov eax, dword [esi + 0x18]
mov dword [esi], eax
mov eax, dword [esi]
mov edi, dword [eax + 0x10]
mov ecx, dword [esi + 0x14]
call fcn.00419ba0
lea edx, [ebp + 0xc]
mov ecx, dword [esi + 0x48]
vmovsd xmm0, qword [edx]
vmovsd qword [ecx], xmm0
mov ecx, dword [esi + 0x44]
mov edx, dword [esi + 0x48]
mov ebx, dword [esi + 0x34]
sub esp, 0x18
vmovsd xmm0, qword [edx]
vmovsd qword [esp + 8], xmm0
mov dword [esp + 0x14], edi
mov dword [esp + 0x10], eax
mov dword [esp + 4], ecx
mov dword [esp], ebx
call fcn.00427050
add esp, 0x18
mov eax, dword [esi + 0x44]
lea edx, [ebp + 0xc]
mov ecx, dword [eax]
mov eax, dword [eax + 4]
mov dword [esi + 0x18], eax
mov dword [edx + 4], eax
mov dword [edx], ecx
mov dword [esi + 0x10], ecx
mov edx, 0x4977e6a9
mov eax, dword [esi + 0x44]
mov eax, dword [0x4a83c0]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
sete al
cmp dword [0x4a83bc], 0xa
setl cl
or cl, al
mov ecx, 0x889001a3
mov eax, 0x6ce32f1a
cmovne ecx, eax
mov eax, 0xe0591e7b
mov dword [esi + 0x38], ecx
mov ecx, 0x889001a3
cmovne ecx, eax
mov dword [esi + 0x84], ecx
mov ecx, dword [ebp + 0x14]
mov eax, dword [ecx + 0x20]
mov ecx, dword [ecx + 0x24]
mov edi, eax
mov ebx, ecx
nop word cs:[eax + eax]
cmp edx, 0x4977e6a8
jle 0x422850
cmp edx, 0x4977e6a9
je 0x422862
cmp edx, 0x6ce32f1a
je 0x42286a
cmp edx, 0x6e9fe0c7
jne 0x422820
jmp 0x422b09
cmp edx, 0x889001a3
je 0x422871
cmp edx, 0xe0591e7b
jne 0x422820
jmp 0x422890
mov edx, dword [esi + 0x84]
jmp 0x422820
mov edx, 0x6e9fe0c7
jmp 0x422820
mov eax, dword [ebp + 0x14]
xor edi, edi
mov edx, 0xe0591e7b
xor ebx, ebx
mov dword [eax + 0x24], 0
mov dword [eax + 0x20], 0
jmp 0x422820
mov eax, dword [ebp + 0x14]
mov edx, dword [esi + 0x38]
xor ecx, ecx
mov dword [esi + 0x80], edi
mov dword [esi + 0x7c], ebx
mov dword [eax + 0x24], 0
mov dword [eax + 0x20], 0
xor eax, eax
jmp 0x42280f
mov edx, dword [0x4a7fd0]
mov ecx, dword [0x4a7fcc]
mov edi, 0x30c445de
lea eax, [edx + 1]
imul eax, edx
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
sete dl
cmp ecx, 0xa
setl dh
xor dh, dl
mov edx, 0xabc9a27d
cmovne edx, edi
cmp eax, 0xffffffff
mov eax, edx
cmove eax, edi
cmp ecx, 0xa
cmovge eax, edx
jmp 0x421400
mov eax, dword [esi + 0x98]
mov eax, dword [esi + 0xc]
mov ecx, dword [0x4a8408]
mov edi, 0x1a8cbc52
lea edx, [ecx - 1]
imul edx, ecx
not edx
or edx, 0xfffffffe
cmp edx, 0xffffffff
sete cl
cmp dword [0x4a8404], 0xa
setl dl
or dl, cl
mov ecx, 0x9edfbd01
mov edx, 0x1893e74d
cmovne ecx, edx
mov edx, 0x9edfbd01
cmovne edx, edi
mov edi, 0x85f9a061
nop word cs:[eax + eax]
cmp edi, 0x1893e74c
jle 0x422980
cmp edi, 0x1893e74d
je 0x42299e
cmp edi, 0x62b57b60
je 0x422b6d
cmp edi, 0x1a8cbc52
jne 0x422950
mov dword [eax + 0x10], 0
mov edi, ecx
jmp 0x422950
cmp edi, 0x85f9a061
je 0x4229a5
cmp edi, 0x9edfbd01
jne 0x422950
mov dword [eax + 0x10], 0
mov edi, 0x1a8cbc52
jmp 0x422950
mov edi, 0x62b57b60
jmp 0x422950
mov edi, edx
jmp 0x422950
mov edx, dword [0x4a7fd0]
mov ecx, dword [0x4a7fcc]
mov edi, 0x6ea0472a
lea eax, [edx + 1]
imul eax, edx
mov edx, eax
xor edx, 0xfffffffe
test edx, eax
sete bl
cmp ecx, 0xa
setl bh
xor bh, bl
mov ebx, 0xbab534f4
cmovne edi, ebx
test edx, eax
mov eax, edi
cmove eax, ebx
cmp ecx, 0xa
cmovge eax, edi
jmp 0x421400
mov eax, dword [esi + 0x38]
mov dword [esi], eax
mov ecx, dword [esi]
mov eax, dword [esi + 0x10]
sub eax, dword [ecx + 0x10]
mov ecx, dword [esi + 0x20]
mov dword [ecx], eax
mov eax, 0xff7af258
jmp 0x421400
mov eax, dword [esi + 0x38]
mov dword [esi], eax
mov eax, dword [esi]
mov ecx, dword [esi + 0x10]
cmp dword [eax + 0x10], ecx
mov eax, 0x97b9823e
mov ecx, 0x2eea1449
cmovb eax, ecx
jmp 0x421400
push dword [esi + 0x10]
call fcn.00437600
mov eax, 0x9e6bce19
jmp 0x421400
mov dword [esi], eax
mov dword [esi + 4], ecx
mov eax, dword [esi]
mov eax, dword [esi + 4]
mov eax, 0xe064047d
jmp 0x421400
mov eax, 0xdc790f93
jmp 0x421400
mov eax, dword [esi + 0x98]
mov eax, dword [esi + 0xc]
mov ecx, dword [0x4a8408]
mov edi, 0x1a8cbc52
lea edx, [ecx + 1]
imul edx, ecx
mov ecx, edx
xor ecx, 0xfffffffe
test ecx, edx
setne cl
sete dl
cmp dword [0x4a8404], 0xa
setge ch
setl dh
or ch, cl
xor dh, dl
xor ch, 1
or ch, dh
mov ecx, 0x9edfbd01
mov edx, 0x1893e74d
cmovne ecx, edx
mov edx, 0x9edfbd01
cmovne edx, edi
mov edi, 0x85f9a061
nop
cmp edi, 0x1893e74c
jle 0x422ae0
cmp edi, 0x1893e74d
je 0x422afe
cmp edi, 0x62b57b60
je 0x422bd7
cmp edi, 0x1a8cbc52
jne 0x422ab0
mov dword [eax + 0x10], 0
mov edi, ecx
jmp 0x422ab0
cmp edi, 0x85f9a061
je 0x422b05
cmp edi, 0x9edfbd01
jne 0x422ab0
mov dword [eax + 0x10], 0
mov edi, 0x1a8cbc52
jmp 0x422ab0
mov edi, 0x62b57b60
jmp 0x422ab0
mov edi, edx
jmp 0x422ab0
mov eax, dword [esi + 0x80]
mov dword [esi], eax
mov eax, dword [esi + 0x7c]
mov dword [esi + 4], eax
mov eax, dword [esi]
mov eax, dword [esi + 4]
mov eax, dword [esi + 0x20]
mov eax, dword [eax]
mov ecx, dword [esi + 0x4c]
mov edx, dword [esi + 0x18]
mov dword [ecx + 4], edx
mov edx, dword [esi + 0x10]
mov dword [ecx], edx
mov ecx, dword [esi + 0x4c]
mov edx, dword [esi + 0x34]
sub esp, 0x18
vmovsd xmm0, qword [ecx]
movsx edi, byte [ebp + 0x18]
mov ecx, dword [ebp + 8]
vmovsd qword [esp + 8], xmm0
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], edi
mov dword [esp], edx
mov dword [esp + 4], ecx
call fcn.00426c90
add esp, 0x18
mov eax, dword [esi + 0x20]
mov eax, 0x669a86fd
jmp 0x421400
mov dword [esi], eax
mov ecx, dword [esi]
mov dword [ecx + 0x14], 0xf
lea ecx, [esi + 0x97]
mov byte [esi + 0x97], 0
push ecx
push eax
call fcn.0040a360
add esp, 8
mov eax, dword [esi + 0xc]
mov eax, dword [0x4a7fd0]
mov ebx, 0x367addb3
mov edi, 0xabc9a27d
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
mov eax, 0xabc9a27d
sete cl
cmove eax, ebx
cmp dword [0x4a7fcc], 0xa
setl dl
cmovge eax, edi
xor dl, cl
movzx edx, byte [ebp + 0x1c]
cmovne eax, ebx
mov byte [esi + 0x2f], dl
jmp 0x421400
mov dword [esi], eax
mov ecx, dword [esi]
mov dword [ecx + 0x14], 0xf
lea ecx, [esi + 0x97]
mov byte [esi + 0x97], 0
push ecx
push eax
call fcn.0040a360
add esp, 8
mov eax, dword [esi + 0xc]
mov eax, 0x30c445de
jmp 0x421400
cmp eax, 0x5035c388
jne 0x421400
mov ecx, dword [esi + 0xa0]
xor ecx, ebp
call fcn.00439e50
mov eax, dword [ebp + 8]
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret 0x18