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

Disassembly:
push ebp
mov ebp, esp
push ebx
push esi
and esp, 0xfffffff8
sub esp, 0x358
mov eax, dword [ebp + 8]
mov edx, eax
lea esi, [ebp + 0xc]
mov dword [esp + 0x34c], ecx
mov ecx, dword [esp + 0x34c]
mov dword [esp + 0x350], ecx
mov ecx, esi
mov dword [esp + 0x31c], esi
mov dword [esp + 0x318], eax
mov dword [esp + 0x314], edx
call fcn.004d6ed0
mov dword [esp], eax
call fcn.004e0b50
mov bl, byte [eax]
mov byte [esp + 0x354], bl
mov dword [esp + 0x32c], 0xe3b8d085
mov eax, dword [esp + 0x32c]
mov ecx, eax
sub ecx, 0x8dd19668
mov dword [esp + 0x310], eax
mov dword [esp + 0x30c], ecx
jg 0x51d20c
jmp 0x51d1ee
mov eax, dword [esp + 0x310]
sub eax, 0x883f7d79
mov dword [esp + 0x308], eax
je 0x51e72c
jmp 0x51e588
mov eax, dword [esp + 0x310]
sub eax, 0x7fed00f6
mov dword [esp + 0x304], eax
jg 0x51e56d
jmp 0x51d22a
mov eax, dword [esp + 0x310]
add eax, 0x71ee348e
mov dword [esp + 0x300], eax
jg 0x51d267
jmp 0x51d249
mov eax, dword [esp + 0x310]
sub eax, 0x8dd19669
mov dword [esp + 0x2fc], eax
je 0x51f6e3
jmp 0x51e588
mov eax, dword [esp + 0x310]
sub eax, 0x8ed893d5
mov dword [esp + 0x2f8], eax
jg 0x51d2a3
jmp 0x51d285
mov eax, dword [esp + 0x310]
sub eax, 0x8e11cb73
mov dword [esp + 0x2f4], eax
je 0x51e662
jmp 0x51e588
mov eax, dword [esp + 0x310]
sub eax, 0x90414bf4
mov dword [esp + 0x2f0], eax
jg 0x51d2e0
jmp 0x51d2c1
mov eax, dword [esp + 0x310]
add eax, 0x71276c2a
mov dword [esp + 0x2ec], eax
je 0x51e6c7
jmp 0x51e588
mov eax, dword [esp + 0x310]
add eax, 0x6bc5735a
mov dword [esp + 0x2e8], eax
jg 0x51d31d
jmp 0x51d2ff
mov eax, dword [esp + 0x310]
sub eax, 0x90414bf5
mov dword [esp + 0x2e4], eax
je 0x51e883
jmp 0x51e588
mov eax, dword [esp + 0x310]
sub eax, 0x94a141dd
mov dword [esp + 0x2e0], eax
jg 0x51d359
jmp 0x51d33b
mov eax, dword [esp + 0x310]
sub eax, 0x943a8ca7
mov dword [esp + 0x2dc], eax
je 0x51f241
jmp 0x51e588
mov eax, dword [esp + 0x310]
sub eax, 0x974752e2
mov dword [esp + 0x2d8], eax
jg 0x51d395
jmp 0x51d377
mov eax, dword [esp + 0x310]
sub eax, 0x94a141de
mov dword [esp + 0x2d4], eax
je 0x51ea3e
jmp 0x51e588
mov eax, dword [esp + 0x310]
sub eax, 0x7da25c5d
mov dword [esp + 0x2d0], eax
jg 0x51e551
jmp 0x51d3b3
mov eax, dword [esp + 0x310]
sub eax, 0x7d628578
mov dword [esp + 0x2cc], eax
jg 0x51e536
jmp 0x51d3d1
mov eax, dword [esp + 0x310]
sub eax, 0x7684e581
mov dword [esp + 0x2c8], eax
jg 0x51e518
jmp 0x51d3ef
mov eax, dword [esp + 0x310]
sub eax, 0x7530cc29
mov dword [esp + 0x2c4], eax
jg 0x51e4fa
jmp 0x51d40d
mov eax, dword [esp + 0x310]
add eax, 0x8b2a7186
mov dword [esp + 0x2c0], eax
jg 0x51e4dc
jmp 0x51d42c
mov eax, dword [esp + 0x310]
sub eax, 0x74aaa1e1
mov dword [esp + 0x2bc], eax
jg 0x51e4be
jmp 0x51d44a
mov eax, dword [esp + 0x310]
sub eax, 0x6e92f754
mov dword [esp + 0x2b8], eax
jg 0x51e4a0
jmp 0x51d468
mov eax, dword [esp + 0x310]
sub eax, 0x669c1fdd
mov dword [esp + 0x2b4], eax
jg 0x51e481
jmp 0x51d486
mov eax, dword [esp + 0x310]
add eax, 0x9bd749e4
mov dword [esp + 0x2b0], eax
jg 0x51e463
jmp 0x51d4a5
mov eax, dword [esp + 0x310]
add eax, 0x9d58d486
mov dword [esp + 0x2ac], eax
jg 0x51e445
jmp 0x51d4c4
mov eax, dword [esp + 0x310]
sub eax, 0x6184f692
mov dword [esp + 0x2a8], eax
jg 0x51e427
jmp 0x51d4e2
mov eax, dword [esp + 0x310]
sub eax, 0x613913b4
mov dword [esp + 0x2a4], eax
jg 0x51e409
jmp 0x51d500
mov eax, dword [esp + 0x310]
sub eax, 0x57fbbea4
mov dword [esp + 0x2a0], eax
jg 0x51e3eb
jmp 0x51d51e
mov eax, dword [esp + 0x310]
sub eax, 0x500923f0
mov dword [esp + 0x29c], eax
jg 0x51e3cd
jmp 0x51d53c
mov eax, dword [esp + 0x310]
sub eax, 0x4fe35969
mov dword [esp + 0x298], eax
jg 0x51e3af
jmp 0x51d55a
mov eax, dword [esp + 0x310]
add eax, 0x68a303a4
mov dword [esp + 0x294], eax
jg 0x51d598
jmp 0x51d579
mov eax, dword [esp + 0x310]
add eax, 0x68b8ad1d
mov dword [esp + 0x290], eax
je 0x51f449
jmp 0x51e588
mov eax, dword [esp + 0x310]
sub eax, 0x9ad32dd8
mov dword [esp + 0x28c], eax
jg 0x51d5d4
jmp 0x51d5b6
mov eax, dword [esp + 0x310]
sub eax, 0x975cfc5d
mov dword [esp + 0x288], eax
je 0x51ec9a
jmp 0x51e588
mov eax, dword [esp + 0x310]
sub eax, 0x9c6e3d6a
mov dword [esp + 0x284], eax
jg 0x51d610
jmp 0x51d5f2
mov eax, dword [esp + 0x310]
sub eax, 0x9ad32dd9
mov dword [esp + 0x280], eax
je 0x51ee84
jmp 0x51e588
mov eax, dword [esp + 0x310]
sub eax, 0x9d24dcdf
mov dword [esp + 0x27c], eax
jg 0x51d64d
jmp 0x51d62e
mov eax, dword [esp + 0x310]
add eax, 0x6391c295
mov dword [esp + 0x278], eax
je 0x51f3a5
jmp 0x51e588
mov eax, dword [esp + 0x310]
add eax, 0x616f7320
mov dword [esp + 0x274], eax
jg 0x51d68a
jmp 0x51d66c
mov eax, dword [esp + 0x310]
sub eax, 0x9d24dce0
mov dword [esp + 0x270], eax
je 0x51e990
jmp 0x51e588
mov eax, dword [esp + 0x310]
add eax, 0x54bc4c7d
mov dword [esp + 0x26c], eax
jg 0x51d6c7
jmp 0x51d6a9
mov eax, dword [esp + 0x310]
sub eax, 0x9e908ce1
mov dword [esp + 0x268], eax
je 0x51e8d9
jmp 0x51e588
mov eax, dword [esp + 0x310]
sub eax, 0xb04d10c1
mov dword [esp + 0x264], eax
jg 0x51d704
jmp 0x51d6e5
mov eax, dword [esp + 0x310]
add eax, 0x54bc4c7c
mov dword [esp + 0x260], eax
je 0x51e8a6
jmp 0x51e588
mov eax, dword [esp + 0x310]
sub eax, 0x4e1cb0d0
mov dword [esp + 0x25c], eax
jg 0x51e391
jmp 0x51d722
mov eax, dword [esp + 0x310]
sub eax, 0x4e11e407
mov dword [esp + 0x258], eax
jg 0x51e373
jmp 0x51d740
mov eax, dword [esp + 0x310]
add eax, 0xb274825e
mov dword [esp + 0x254], eax
jg 0x51e355
jmp 0x51d75f
mov eax, dword [esp + 0x310]
sub eax, 0x484d1ea8
mov dword [esp + 0x250], eax
jg 0x51e337
jmp 0x51d77d
mov eax, dword [esp + 0x310]
sub eax, 0x44894390
mov dword [esp + 0x24c], eax
jg 0x51e318
jmp 0x51d79b
mov eax, dword [esp + 0x310]
sub eax, 0x41a33341
mov dword [esp + 0x248], eax
jg 0x51e2f9
jmp 0x51d7b9
mov eax, dword [esp + 0x310]
sub eax, 0x3fd3a3a6
mov dword [esp + 0x244], eax
jg 0x51e2db
jmp 0x51d7d7
mov eax, dword [esp + 0x310]
add eax, 0xc2f1b88a
mov dword [esp + 0x240], eax
jg 0x51e2bc
jmp 0x51d7f6
mov eax, dword [esp + 0x310]
add eax, 0xc5facff6
mov dword [esp + 0x23c], eax
jg 0x51e29d
jmp 0x51d815
mov eax, dword [esp + 0x310]
sub eax, 0x3521354f
mov dword [esp + 0x238], eax
jg 0x51e27e
jmp 0x51d833
mov eax, dword [esp + 0x310]
add eax, 0xcb7deb08
mov dword [esp + 0x234], eax
jg 0x51e260
jmp 0x51d852
mov eax, dword [esp + 0x310]
sub eax, 0x308e3db1
mov dword [esp + 0x230], eax
jg 0x51e241
jmp 0x51d870
mov eax, dword [esp + 0x310]
sub eax, 0x304f8c3b
mov dword [esp + 0x22c], eax
jg 0x51e222
jmp 0x51d88e
mov eax, dword [esp + 0x310]
sub eax, 0x2f9f932c
mov dword [esp + 0x228], eax
jg 0x51e204
jmp 0x51d8ac
mov eax, dword [esp + 0x310]
add eax, 0xd124b343
mov dword [esp + 0x224], eax
jg 0x51e1e6
jmp 0x51d8cb
mov eax, dword [esp + 0x310]
sub eax, 0x2ec3caae
mov dword [esp + 0x220], eax
jg 0x51e1c8
jmp 0x51d8e9
mov eax, dword [esp + 0x310]
sub eax, 0x2b117fdd
mov dword [esp + 0x21c], eax
jg 0x51e1a9
jmp 0x51d907
mov eax, dword [esp + 0x310]
sub eax, 0x288a3102
mov dword [esp + 0x218], eax
jg 0x51e18b
jmp 0x51d925
mov eax, dword [esp + 0x310]
sub eax, 0x2846f5e0
mov dword [esp + 0x214], eax
jg 0x51e16d
jmp 0x51d943
mov eax, dword [esp + 0x310]
sub eax, 0x282144a0
mov dword [esp + 0x210], eax
jg 0x51e14f
jmp 0x51d961
mov eax, dword [esp + 0x310]
add eax, 0xe1735469
mov dword [esp + 0x20c], eax
jg 0x51e130
jmp 0x51d980
mov eax, dword [esp + 0x310]
sub eax, 0x1bb1a9f1
mov dword [esp + 0x208], eax
jg 0x51e112
jmp 0x51d99e
mov eax, dword [esp + 0x310]
add eax, 0xe4d9fad7
mov dword [esp + 0x204], eax
jg 0x51e0f4
jmp 0x51d9bd
mov eax, dword [esp + 0x310]
add eax, 0xe717ef0d
mov dword [esp + 0x200], eax
jg 0x51e0d5
jmp 0x51d9dc
mov eax, dword [esp + 0x310]
sub eax, 0x18558a94
mov dword [esp + 0x1fc], eax
jg 0x51e0b7
jmp 0x51d9fa
mov eax, dword [esp + 0x310]
sub eax, 0xf7d5f1f
mov dword [esp + 0x1f8], eax
jg 0x51e099
jmp 0x51da18
mov eax, dword [esp + 0x310]
sub eax, 0xc47d1b5
mov dword [esp + 0x1f4], eax
jg 0x51e07b
jmp 0x51da36
mov eax, dword [esp + 0x310]
add eax, 0xf4100060
mov dword [esp + 0x1f0], eax
jg 0x51e05d
jmp 0x51da55
mov eax, dword [esp + 0x310]
sub eax, 0x6145509
mov dword [esp + 0x1ec], eax
jg 0x51e03f
jmp 0x51da73
mov eax, dword [esp + 0x310]
sub eax, 0x39dc623
mov dword [esp + 0x1e8], eax
jg 0x51e021
jmp 0x51da91
mov eax, dword [esp + 0x310]
sub eax, 0x25ec957
mov dword [esp + 0x1e4], eax
jg 0x51e003
jmp 0x51daaf
mov eax, dword [esp + 0x310]
add eax, 0xfef0133f
mov dword [esp + 0x1e0], eax
jg 0x51dfe5
jmp 0x51dace
mov eax, dword [esp + 0x310]
sub eax, 0xff693f96
mov dword [esp + 0x1dc], eax
jg 0x51dfc7
jmp 0x51daec
mov eax, dword [esp + 0x310]
add eax, 0x51ddb70
mov dword [esp + 0x1d8], eax
jg 0x51dfa9
jmp 0x51db0b
mov eax, dword [esp + 0x310]
sub eax, 0xfacdf578
mov dword [esp + 0x1d4], eax
jg 0x51df8b
jmp 0x51db29
mov eax, dword [esp + 0x310]
sub eax, 0xf91a49dc
mov dword [esp + 0x1d0], eax
jg 0x51df6d
jmp 0x51db47
mov eax, dword [esp + 0x310]
sub eax, 0xf528cc5a
mov dword [esp + 0x1cc], eax
jg 0x51df4f
jmp 0x51db65
mov eax, dword [esp + 0x310]
add eax, 0xe5b63ac
mov dword [esp + 0x1c8], eax
jg 0x51df31
jmp 0x51db84
mov eax, dword [esp + 0x310]
add eax, 0x12d607b6
mov dword [esp + 0x1c4], eax
jg 0x51df13
jmp 0x51dba3
mov eax, dword [esp + 0x310]
sub eax, 0xeb9e6f19
mov dword [esp + 0x1c0], eax
jg 0x51def4
jmp 0x51dbc1
mov eax, dword [esp + 0x310]
sub eax, 0xe87bf74d
mov dword [esp + 0x1bc], eax
jg 0x51ded6
jmp 0x51dbdf
mov eax, dword [esp + 0x310]
sub eax, 0xe60e355c
mov dword [esp + 0x1b8], eax
jg 0x51deb8
mov eax, dword [esp + 0x310]
sub eax, 0xe87bf74e
mov dword [esp + 0x154], eax
je 0x51ebb2
jmp 0x51e588
mov eax, dword [esp + 0x310]
add eax, 0x146190e6
mov dword [esp + 0x150], eax
je 0x51ee06
jmp 0x51e588
mov eax, dword [esp + 0x310]
sub eax, 0xed29f84b
mov dword [esp + 0x14c], eax
je 0x51f599
jmp 0x51e588
mov eax, dword [esp + 0x310]
sub eax, 0xf1a49c55
mov dword [esp + 0x148], eax
je 0x51f710
jmp 0x51e588
mov eax, dword [esp + 0x310]
sub eax, 0xf528cc5b
mov dword [esp + 0x144], eax
je 0x51f67d
jmp 0x51e588
mov eax, dword [esp + 0x310]
sub eax, 0xf91a49dd
mov dword [esp + 0x140], eax
je 0x51e947
jmp 0x51e588
mov eax, dword [esp + 0x310]
sub eax, 0xfacdf579
mov dword [esp + 0x13c], eax
je 0x51f2ac
jmp 0x51e588
mov eax, dword [esp + 0x310]
sub eax, 0xfae22491
mov dword [esp + 0x138], eax
je 0x51ef8f
jmp 0x51e588
mov eax, dword [esp + 0x310]
sub eax, 0xff693f97
mov dword [esp + 0x134], eax
je 0x51ef27
jmp 0x51e588
mov eax, dword [esp + 0x310]
sub eax, 0x10fecc2
mov dword [esp + 0x130], eax
je 0x51f31a
jmp 0x51e588
mov eax, dword [esp + 0x310]
sub eax, 0x25ec958
mov dword [esp + 0x12c], eax
je 0x51f561
jmp 0x51e588
mov eax, dword [esp + 0x310]
sub eax, 0x39dc624
mov dword [esp + 0x128], eax
je 0x51ecc7
jmp 0x51e588
mov eax, dword [esp + 0x310]
sub eax, 0x614550a
mov dword [esp + 0x124], eax
je 0x51f6a7
jmp 0x51e588
mov eax, dword [esp + 0x310]
sub eax, 0xbefffa1
mov dword [esp + 0x120], eax
je 0x51ea82
jmp 0x51e588
mov eax, dword [esp + 0x310]
sub eax, 0xc47d1b6
mov dword [esp + 0x11c], eax
je 0x51f541
jmp 0x51e588
mov eax, dword [esp + 0x310]
sub eax, 0xf7d5f20
mov dword [esp + 0x118], eax
je 0x51e9e3
jmp 0x51e588
mov eax, dword [esp + 0x310]
sub eax, 0x18558a95
mov dword [esp + 0x114], eax
je 0x51e9b6
jmp 0x51e588
mov eax, dword [esp + 0x310]
add eax, 0xe717ef0c
mov dword [esp + 0x110], eax
je 0x51e919
jmp 0x51e588
mov eax, dword [esp + 0x310]
sub eax, 0x1b26052a
mov dword [esp + 0x10c], eax
je 0x51ebe5
jmp 0x51e588
mov eax, dword [esp + 0x310]
sub eax, 0x1bb1a9f2
mov dword [esp + 0x108], eax
je 0x51f571
jmp 0x51e588
mov eax, dword [esp + 0x310]
add eax, 0xe1735468
mov dword [esp + 0x104], eax
je 0x51f3df
jmp 0x51e588
mov eax, dword [esp + 0x310]
sub eax, 0x282144a1
mov dword [esp + 0x100], eax
je 0x51e909
jmp 0x51e588
mov eax, dword [esp + 0x310]
sub eax, 0x2846f5e1
mov dword [esp + 0xfc], eax
je 0x51eaaf
jmp 0x51e588
mov eax, dword [esp + 0x310]
sub eax, 0x288a3103
mov dword [esp + 0xf8], eax
je 0x51e629
jmp 0x51e588
mov eax, dword [esp + 0x310]
add eax, 0xd4ee8022
mov dword [esp + 0xf4], eax
je 0x51ed87
jmp 0x51e588
mov eax, dword [esp + 0x310]
sub eax, 0x2ec3caaf
mov dword [esp + 0xf0], eax
je 0x51f733
jmp 0x51e588
mov eax, dword [esp + 0x310]
sub eax, 0x2edb4cbe
mov dword [esp + 0xec], eax
je 0x51f36b
jmp 0x51e588
mov eax, dword [esp + 0x310]
sub eax, 0x2f9f932d
mov dword [esp + 0xe8], eax
je 0x51f4bc
jmp 0x51e588
mov eax, dword [esp + 0x310]
add eax, 0xcfb073c4
mov dword [esp + 0xe4], eax
je 0x51f045
jmp 0x51e588
mov eax, dword [esp + 0x310]
add eax, 0xcf71c24e
mov dword [esp + 0xe0], eax
je 0x51f018
jmp 0x51e588
mov eax, dword [esp + 0x310]
sub eax, 0x348214f9
mov dword [esp + 0xdc], eax
je 0x51ed97
jmp 0x51e588
mov eax, dword [esp + 0x310]
add eax, 0xcadecab0
mov dword [esp + 0xd8], eax
je 0x51eb6c
jmp 0x51e588
mov eax, dword [esp + 0x310]
add eax, 0xc5facff5
mov dword [esp + 0xd4], eax
je 0x51f5bb
jmp 0x51e588
mov eax, dword [esp + 0x310]
add eax, 0xc2f1b889
mov dword [esp + 0xd0], eax
je 0x51e5be
jmp 0x51e588
mov eax, dword [esp + 0x310]
sub eax, 0x3fd3a3a7
mov dword [esp + 0xcc], eax
je 0x51efb2
jmp 0x51e588
mov eax, dword [esp + 0x310]
add eax, 0xbe5cccbe
mov dword [esp + 0xc8], eax
je 0x51e651
jmp 0x51e588
mov eax, dword [esp + 0x310]
add eax, 0xbb76bc6f
mov dword [esp + 0xc4], eax
je 0x51f40f
jmp 0x51e588
mov eax, dword [esp + 0x310]
sub eax, 0x484d1ea9
mov dword [esp + 0xc0], eax
je 0x51e84d
jmp 0x51e588
mov eax, dword [esp + 0x310]
sub eax, 0x4d8b7da3
mov dword [esp + 0xbc], eax
je 0x51ec6c
jmp 0x51e588
mov eax, dword [esp + 0x310]
sub eax, 0x4e11e408
mov dword [esp + 0xb8], eax
je 0x51eee1
jmp 0x51e588
mov eax, dword [esp + 0x310]
sub eax, 0x4e1cb0d1
mov dword [esp + 0xb4], eax
je 0x51eb4e
jmp 0x51e588
mov eax, dword [esp + 0x310]
sub eax, 0x4fe3596a
mov dword [esp + 0xb0], eax
je 0x51eeb8
jmp 0x51e588
mov eax, dword [esp + 0x310]
sub eax, 0x500923f1
mov dword [esp + 0xac], eax
je 0x51f551
jmp 0x51e588
mov eax, dword [esp + 0x310]
sub eax, 0x57fbbea5
mov dword [esp + 0xa8], eax
je 0x51e6a4
jmp 0x51e588
mov eax, dword [esp + 0x310]
sub eax, 0x613913b5
mov dword [esp + 0xa4], eax
je 0x51f261
jmp 0x51e588
mov eax, dword [esp + 0x310]
sub eax, 0x6184f693
mov dword [esp + 0xa0], eax
je 0x51ee36
jmp 0x51e588
mov eax, dword [esp + 0x310]
sub eax, 0x62a72b7b
mov dword [esp + 0x9c], eax
je 0x51f0d7
jmp 0x51e588
mov eax, dword [esp + 0x310]
sub eax, 0x6428b61d
mov dword [esp + 0x98], eax
je 0x51e83c
jmp 0x51e588
mov eax, dword [esp + 0x310]
add eax, 0x9963e022
mov dword [esp + 0x94], eax
je 0x51ed10
jmp 0x51e588
mov eax, dword [esp + 0x310]
sub eax, 0x6e92f755
mov dword [esp + 0x90], eax
je 0x51e80f
jmp 0x51e588
mov eax, dword [esp + 0x310]
sub eax, 0x74aaa1e2
mov dword [esp + 0x8c], eax
je 0x51e73c
jmp 0x51e588
mov eax, dword [esp + 0x310]
sub eax, 0x74d58e7b
mov dword [esp + 0x88], eax
je 0x51ea5c
jmp 0x51e588
mov eax, dword [esp + 0x310]
sub eax, 0x7530cc2a
mov dword [esp + 0x84], eax
je 0x51e7b1
jmp 0x51e588
mov eax, dword [esp + 0x310]
sub eax, 0x7684e582
mov dword [esp + 0x80], eax
je 0x51ee46
jmp 0x51e588
mov eax, dword [esp + 0x310]
sub eax, 0x7d628579
mov dword [esp + 0x7c], eax
je 0x51e76e
jmp 0x51e588
mov eax, dword [esp + 0x310]
add eax, 0x825da3a2
mov dword [esp + 0x78], eax
je 0x51f1b9
jmp 0x51e588
mov eax, dword [esp + 0x310]
sub eax, 0x7fed00f7
mov dword [esp + 0x74], eax
je 0x51f251
jmp 0x51e588
jmp 0x51f769
mov eax, dword [esp + 0x31c]
mov ecx, eax
call fcn.004d6ed0
mov dword [esp + 0x348], eax
mov ecx, dword [esp + 0x31c]
call fcn.0049d390
mov ecx, dword [esp + 0x348]
mov dword [esp + 0x33c], ecx
mov ecx, dword [esp + 0x33c]
mov dword [esp], ecx
mov dword [esp + 0x70], eax
call fcn.00502cf0
call fcn.0051f770
mov dword [esp], eax
call fcn.004e0b50
mov ecx, 0x41a33342
mov edx, 0x288a3103
cmp byte [eax], 0
cmovne ecx, edx
mov dword [esp + 0x32c], ecx
jmp 0x51f769
mov eax, dword [esp + 0x33c]
mov dword [esp], eax
call fcn.004e0b70
mov eax, dword [eax]
mov dword [esp + 0x344], eax
mov dword [esp + 0x32c], 0x74aaa1e2
jmp 0x51f769
mov eax, 0x8e11cb73
mov dword [esp + 0x32c], eax
jmp 0x51f769
mov eax, dword [esp + 0x33c]
mov dword [esp], eax
call fcn.004e0b70
mov eax, dword [eax]
mov dword [esp], eax
call fcn.004e0b50
mov ecx, 0x4ac1377
pushfd
sub ecx, 0xacb054d2
popfd
cmp byte [eax], 0
setne dl
and dl, 1
mov byte [esp + 0x355], dl
mov dword [esp + 0x32c], ecx
jmp 0x51f769
mov eax, 0xc95d78cc
mov ecx, 0x8ed893d6
mov dl, byte [esp + 0x355]
test dl, 1
cmovne eax, ecx
mov dword [esp + 0x32c], eax
jmp 0x51f769
mov eax, dword [esp + 0x33c]
mov dword [esp], eax
call fcn.00502cf0
mov eax, dword [eax]
mov dword [esp + 0x344], eax
mov dword [esp + 0x32c], 0x883f7d79
jmp 0x51f769
mov dword [esp + 0x32c], 0x74aaa1e2
jmp 0x51f769
mov eax, 0xc5bd20bc
pushfd
xor ecx, ecx
add ecx, 0xb0dabcb
sub ecx, 0x8dab2652
popfd
mov edx, dword [esp + 0x33c]
cmp edx, dword [esp + 0x348]
cmove eax, ecx
mov dword [esp + 0x32c], eax
jmp 0x51f769
mov eax, dword [esp + 0x348]
mov dword [esp], eax
call fcn.00524610
mov eax, dword [eax]
mov dword [esp + 0x340], eax
mov eax, dword [esp + 0x344]
mov dword [esp], eax
call fcn.004e0b50
mov ecx, 0x7530cc2a
mov edx, 0xd6bf3da1
cmp byte [eax], 0
cmovne ecx, edx
mov dword [esp + 0x32c], ecx
jmp 0x51f769
mov eax, dword [esp + 0x340]
mov ecx, dword [esp + 0x344]
mov dword [esp], ecx
mov dword [esp + 0x6c], eax
call fcn.00524610
mov ecx, dword [esp + 0x6c]
mov dword [eax], ecx
mov dword [esp + 0x32c], 0xd6bf3da1
jmp 0x51f769
mov eax, dword [esp + 0x344]
mov ecx, dword [esp + 0x350]
mov dword [esp + 0x68], eax
call fcn.0050e450
mov ecx, dword [esp + 0x68]
mov dword [eax], ecx
mov dword [esp + 0x32c], 0x18e810f4
jmp 0x51f769
mov eax, 0x484d1ea9
mov dword [esp + 0x32c], eax
jmp 0x51f769
mov eax, dword [esp + 0x340]
mov dword [esp], eax
call fcn.00502cf0
mov ecx, 0x90414bf5
mov eax, dword [eax]
cmp eax, dword [esp + 0x348]
sete dl
and dl, 1
mov byte [esp + 0x356], dl
mov dword [esp + 0x32c], ecx
jmp 0x51f769
mov eax, 0x9e908ce1
mov ecx, 0xab43b384
mov dl, byte [esp + 0x356]
test dl, 1
cmovne eax, ecx
mov dword [esp + 0x32c], eax
jmp 0x51f769
mov eax, dword [esp + 0x344]
mov ecx, dword [esp + 0x340]
mov dword [esp], ecx
mov dword [esp + 0x64], eax
call fcn.00502cf0
mov ecx, dword [esp + 0x64]
call fcn.0051f780
mov dword [esp + 0x32c], 0x282144a1
jmp 0x51f769
mov eax, dword [esp + 0x344]
mov ecx, dword [esp + 0x340]
mov dword [esp], ecx
mov dword [esp + 0x60], eax
call fcn.004e0b70
mov ecx, dword [esp + 0x60]
mov dword [eax], ecx
mov dword [esp + 0x32c], 0x282144a1
jmp 0x51f769
mov dword [esp + 0x32c], 0x18e810f4
jmp 0x51f769
mov ecx, dword [esp + 0x350]
call fcn.004b9970
mov ecx, 0xf7d5f20
mov edx, 0xf91a49dd
mov eax, dword [eax]
cmp eax, dword [esp + 0x348]
cmove ecx, edx
mov dword [esp + 0x32c], ecx
jmp 0x51f769
mov eax, dword [esp + 0x344]
mov dword [esp], eax
call fcn.004e0b50
mov ecx, 0x9d24dce0
mov edx, 0xc199a928
cmp byte [eax], 0
cmovne ecx, edx
mov dword [esp + 0x32c], ecx
jmp 0x51f769
mov eax, dword [esp + 0x344]
mov dword [esp], eax
call fcn.0049d3d0
mov dword [esp + 0x32c], 0x18558a95
mov dword [esp + 0x328], eax
jmp 0x51f769
mov eax, dword [esp + 0x328]
mov ecx, dword [esp + 0x350]
mov dword [esp + 0x5c], eax
call fcn.004b9970
mov ecx, dword [esp + 0x5c]
mov dword [eax], ecx
mov dword [esp + 0x32c], 0xf7d5f20
jmp 0x51f769
mov ecx, dword [esp + 0x350]
call fcn.0052c9d0
mov ecx, 0x2846f5e1
mov edx, 0xb04d10c2
mov eax, dword [eax]
cmp eax, dword [esp + 0x348]
cmove ecx, edx
mov dword [esp + 0x32c], ecx
jmp 0x51f769
mov eax, dword [esp + 0x340]
mov dword [esp + 0x32c], 0xbefffa1
mov dword [esp + 0x324], eax
jmp 0x51f769
mov eax, dword [esp + 0x344]
mov dword [esp], eax
call fcn.004b99a0
mov dword [esp + 0x32c], 0xbefffa1
mov dword [esp + 0x324], eax
jmp 0x51f769
mov eax, dword [esp + 0x324]
mov ecx, dword [esp + 0x350]
mov dword [esp + 0x58], eax
call fcn.0052c9d0
mov ecx, dword [esp + 0x58]
mov dword [eax], ecx
mov dword [esp + 0x32c], 0x2846f5e1
jmp 0x51f769
mov dword [esp + 0x32c], 0xeb9e6f1a
jmp 0x51f769
mov eax, dword [esp + 0x33c]
mov dword [esp + 0x340], eax
mov dword [esp + 0x32c], 0x4d8b7da3
jmp 0x51f769
mov eax, dword [esp + 0x33c]
mov dword [esp], eax
call fcn.00524610
call fcn.0051f790
mov dword [esp + 0x340], eax
mov eax, dword [esp + 0x344]
mov dword [esp], eax
call fcn.004e0b50
mov ecx, 0xe87bf74e
mov edx, 0x1b26052a
cmp byte [eax], 0
cmovne ecx, edx
mov dword [esp + 0x32c], ecx
jmp 0x51f769
mov eax, dword [esp + 0x340]
mov ecx, dword [esp + 0x344]
mov dword [esp], ecx
mov dword [esp + 0x48], eax
call fcn.00524610
mov ecx, dword [esp + 0x48]
call fcn.0051f7a0
mov dword [esp + 0x32c], 0x1b26052a
jmp 0x51f769
mov eax, dword [esp + 0x344]
mov ecx, dword [esp + 0x340]
mov dword [esp], ecx
mov dword [esp + 0x44], eax
call fcn.00502cf0
mov ecx, dword [esp + 0x44]
call fcn.0051f7b0
mov eax, dword [esp + 0x348]
mov dword [esp], eax
call fcn.004e0b70
mov eax, dword [eax]
mov ecx, dword [esp + 0x33c]
mov dword [esp], ecx
mov dword [esp + 0x40], eax
call fcn.004e0b70
mov ecx, dword [esp + 0x40]
mov dword [eax], ecx
mov eax, dword [esp + 0x33c]
mov ecx, dword [esp + 0x348]
mov dword [esp], ecx
mov dword [esp + 0x3c], eax
call fcn.004e0b70
mov eax, dword [eax]
mov dword [esp], eax
call fcn.00524610
mov ecx, dword [esp + 0x3c]
mov dword [eax], ecx
mov dword [esp + 0x32c], 0x4d8b7da3
jmp 0x51f769
mov ecx, dword [esp + 0x350]
call fcn.0050e450
mov ecx, 0x39dc624
mov edx, 0x975cfc5d
mov eax, dword [eax]
cmp eax, dword [esp + 0x348]
cmove ecx, edx
mov dword [esp + 0x32c], ecx
jmp 0x51f769
mov eax, dword [esp + 0x33c]
mov ecx, dword [esp + 0x350]
mov dword [esp + 0x38], eax
call fcn.0050e450
mov ecx, dword [esp + 0x38]
mov dword [eax], ecx
mov dword [esp + 0x32c], 0x348214f9
jmp 0x51f769
mov eax, dword [esp + 0x348]
mov dword [esp], eax
call fcn.00524610
mov eax, dword [eax]
mov dword [esp], eax
call fcn.00502cf0
pushfd
xor ecx, ecx
add ecx, 0xfdc3af21
sub ecx, 0x197ec85e
popfd
mov edx, 0x669c1fde
call fcn.0051f7c0
cmp eax, dword [esp + 0x348]
cmove ecx, edx
mov dword [esp + 0x32c], ecx
jmp 0x51f769
mov eax, dword [esp + 0x33c]
mov ecx, dword [esp + 0x348]
mov dword [esp], ecx
mov dword [esp + 0x34], eax
call fcn.00524610
call fcn.0051f7d0
mov dword [esp], eax
call fcn.00502cf0
mov ecx, dword [esp + 0x34]
mov dword [eax], ecx
mov dword [esp + 0x32c], 0x2b117fde
jmp 0x51f769
mov dword [esp + 0x32c], 0x348214f9
jmp 0x51f769
mov eax, dword [esp + 0x348]
mov dword [esp], eax
call fcn.00524610
call fcn.0051f7e0
mov ecx, dword [esp + 0x33c]
mov dword [esp], ecx
mov dword [esp + 0x2c], eax
call fcn.00524610
mov ecx, dword [esp + 0x2c]
mov dword [eax], ecx
mov eax, dword [esp + 0x348]
mov dword [esp], eax
call fcn.0052c9f0
mov ecx, dword [esp + 0x33c]
mov dword [esp], ecx
mov dword [esp + 0x28], eax
call fcn.0052c9f0
mov dword [esp], eax
mov eax, dword [esp + 0x28]
mov dword [esp + 4], eax
call fcn.00428fb0
mov dword [esp + 0x32c], 0xeb9e6f1a
jmp 0x51f769
mov eax, dword [esp + 0x348]
mov dword [esp], eax
call fcn.0052c9f0
mov ecx, 0x3a05300b
mov edx, 0x6184f693
movsx eax, byte [eax]
cmp eax, 1
cmove ecx, edx
mov dword [esp + 0x32c], ecx
jmp 0x51f769
mov dword [esp + 0x32c], 0x7684e582
jmp 0x51f769
mov eax, dword [esp + 0x344]
mov ecx, dword [esp + 0x350]
mov dword [esp + 0x24], eax
call fcn.0050e450
mov ecx, 0x4fe3596a
mov edx, 0x9ad32dd9
mov esi, dword [esp + 0x24]
cmp esi, dword [eax]
cmovne ecx, edx
mov dword [esp + 0x32c], ecx
mov byte [esp + 0x323], 0
jmp 0x51f769
mov eax, dword [esp + 0x344]
mov dword [esp], eax
call fcn.0052c9f0
movsx eax, byte [eax]
cmp eax, 1
sete cl
mov dword [esp + 0x32c], 0x4fe3596a
and cl, 1
mov byte [esp + 0x323], cl
jmp 0x51f769
mov eax, 0x8b43be09
pushfd
xor eax, 0x666a4642
popfd
mov ecx, 0x4e11e408
test byte [esp + 0x323], 1
cmovne eax, ecx
mov dword [esp + 0x32c], eax
jmp 0x51f769
mov eax, dword [esp + 0x344]
mov ecx, dword [esp + 0x340]
mov dword [esp], ecx
mov dword [esp + 0x20], eax
call fcn.00502cf0
mov ecx, 0x5e907c
mov ecx, dword [ecx]
pushfd
xor edx, edx
add edx, 0xc17f26ec
sub edx, 0xc215e755
popfd
mov esi, dword [esp + 0x20]
cmp esi, dword [eax]
cmove ecx, edx
mov dword [esp + 0x32c], ecx
jmp 0x51f769
mov eax, 0xcd05e782
mov dword [esp + 0x32c], eax
jmp 0x51f769
mov eax, 0x308e3db2
mov ecx, 0x3fd3a3a7
mov dl, byte [esp + 0x357]
test dl, 1
cmovne eax, ecx
mov dword [esp + 0x32c], eax
jmp 0x51f769
mov eax, dword [esp + 0x33c]
mov dword [esp], eax
call fcn.0052c9f0
mov byte [eax], 1
mov eax, dword [esp + 0x340]
mov dword [esp], eax
call fcn.0052c9f0
mov byte [eax], 0
mov eax, dword [esp + 0x340]
mov ecx, dword [esp + 0x350]
mov edx, esp
mov dword [edx], eax
call fcn.004e49c0
sub esp, 4
mov eax, dword [esp + 0x340]
mov dword [esp], eax
call fcn.004e0b70
mov eax, dword [eax]
mov dword [esp + 0x33c], eax
mov dword [esp + 0x32c], 0x308e3db2
jmp 0x51f769
mov eax, dword [esp + 0x33c]
mov dword [esp], eax
call fcn.004e0b50
mov ecx, 0xd4322b80
mov edx, 0x5e90f4
mov edx, dword [edx]
cmp byte [eax], 0
cmovne ecx, edx
mov dword [esp + 0x32c], ecx
jmp 0x51f769
mov eax, dword [esp + 0x340]
mov dword [esp + 0x344], eax
mov dword [esp + 0x32c], 0x7fed00f7
jmp 0x51f769
mov eax, dword [esp + 0x33c]
mov dword [esp], eax
call fcn.0052c9f0
mov byte [eax], 0
mov eax, dword [esp + 0x340]
mov dword [esp + 0x344], eax
mov dword [esp + 0x32c], 0x943a8ca7
jmp 0x51f769
mov eax, dword [esp + 0x340]
mov dword [esp], eax
call fcn.0052c9f0
mov cl, byte [eax]
mov eax, dword [esp + 0x33c]
mov dword [esp], eax
mov byte [esp + 0x1f], cl
call fcn.0052c9f0
mov cl, byte [esp + 0x1f]
mov byte [eax], cl
mov eax, dword [esp + 0x340]
mov dword [esp], eax
call fcn.0052c9f0
mov byte [eax], 1
mov eax, dword [esp + 0x33c]
mov dword [esp], eax
call fcn.004e0b70
call fcn.0051f810
mov dword [esp], eax
call fcn.0052c9f0
mov byte [eax], 1
mov eax, dword [esp + 0x340]
mov ecx, dword [esp + 0x350]
mov edx, esp
call fcn.0051f820
call fcn.004e49c0
sub esp, 4
mov dword [esp + 0x32c], 0xed29f84b
jmp 0x51f769
mov dword [esp + 0x32c], 0x7fed00f7
jmp 0x51f769
mov dword [esp + 0x32c], 0x25ec958
jmp 0x51f769
mov eax, dword [esp + 0x340]
mov dword [esp], eax
call fcn.00502cf0
call fcn.0051f830
mov dword [esp + 0x33c], eax
mov eax, dword [esp + 0x33c]
mov dword [esp], eax
call fcn.0052c9f0
mov ecx, 0x10fecc2
mov edx, 0xfacdf579
movsx eax, byte [eax]
cmp eax, 0
cmove ecx, edx
mov dword [esp + 0x32c], ecx
jmp 0x51f769
mov eax, dword [esp + 0x33c]
mov dword [esp], eax
call fcn.0052c9f0
mov byte [eax], 1
mov eax, dword [esp + 0x340]
mov dword [esp], eax
call fcn.0052c9f0
mov byte [eax], 0
mov eax, dword [esp + 0x340]
mov ecx, dword [esp + 0x350]
mov edx, ebx
mov edx, esp
call fcn.0051f840
call fcn.0052ca20
sub esp, 4
mov eax, dword [esp + 0x340]
mov dword [esp], eax
call fcn.00502cf0
call fcn.0051f850
mov dword [esp + 0x33c], eax
mov dword [esp + 0x32c], 0x10fecc2
jmp 0x51f769
mov eax, dword [esp + 0x33c]
mov dword [esp], eax
call fcn.004e0b50
mov ecx, 0x8962aa30
pushfd
sub ecx, 0x5a875d72
popfd
mov edx, 0xb0507c57
cmp byte [eax], 0
cmovne ecx, edx
mov dword [esp + 0x32c], ecx
jmp 0x51f769
mov eax, dword [esp + 0x33c]
mov dword [esp], eax
call fcn.004e0b70
mov eax, dword [eax]
mov dword [esp], eax
call fcn.0052c9f0
mov ecx, 0x44894391
mov edx, 0x9c6e3d6b
movsx eax, byte [eax]
cmp eax, 1
cmove ecx, edx
mov dword [esp + 0x32c], ecx
jmp 0x51f769
mov eax, dword [esp + 0x33c]
mov dword [esp], eax
call fcn.00502cf0
mov eax, dword [eax]
mov dword [esp], eax
call fcn.0052c9f0
mov ecx, 0x44894391
mov edx, 0x1e8cab98
movsx eax, byte [eax]
cmp eax, 1
cmove ecx, edx
mov dword [esp + 0x32c], ecx
jmp 0x51f769
mov eax, dword [esp + 0x33c]
mov dword [esp], eax
call fcn.0052c9f0
mov byte [eax], 0
mov eax, dword [esp + 0x340]
mov dword [esp + 0x344], eax
mov dword [esp + 0x32c], 0xc47d1b6
jmp 0x51f769
mov eax, dword [esp + 0x33c]
mov dword [esp], eax
call fcn.00502cf0
mov eax, dword [eax]
mov dword [esp], eax
call fcn.0052c9f0
mov ecx, 0x2f9f932d
mov edx, 0x974752e3
movsx eax, byte [eax]
cmp eax, 1
cmove ecx, edx
mov dword [esp + 0x32c], ecx
jmp 0x51f769
mov eax, dword [esp + 0x33c]
mov dword [esp], eax
call fcn.004e0b70
mov eax, dword [eax]
mov dword [esp], eax
call fcn.0052c9f0
mov byte [eax], 1
mov eax, dword [esp + 0x33c]
mov dword [esp], eax
call fcn.0052c9f0
mov byte [eax], 0
mov eax, dword [esp + 0x33c]
mov ecx, dword [esp + 0x350]
mov edx, esp
mov dword [edx], eax
call fcn.004e49c0
sub esp, 4
mov eax, dword [esp + 0x340]
mov dword [esp], eax
call fcn.00502cf0
call fcn.0051f860
mov dword [esp + 0x33c], eax
mov dword [esp + 0x32c], 0x2f9f932d
jmp 0x51f769
mov eax, dword [esp + 0x340]
mov dword [esp], eax
call fcn.0052c9f0
mov cl, byte [eax]
mov eax, dword [esp + 0x33c]
mov dword [esp], eax
mov byte [esp + 0x1e], cl
call fcn.0052c9f0
mov cl, byte [esp + 0x1e]
mov byte [eax], cl
mov eax, dword [esp + 0x340]
mov dword [esp], eax
call fcn.0052c9f0
mov byte [eax], 1
mov eax, dword [esp + 0x33c]
mov dword [esp], eax
call fcn.00502cf0
call fcn.0051f870
mov dword [esp], eax
call fcn.0052c9f0
mov byte [eax], 1
mov eax, dword [esp + 0x340]
mov ecx, dword [esp + 0x350]
mov edx, esp
mov dword [edx], eax
call fcn.0052ca20
sub esp, 4
mov dword [esp + 0x32c], 0xed29f84b
jmp 0x51f769
mov dword [esp + 0x32c], 0x500923f1
jmp 0x51f769
mov dword [esp + 0x32c], 0x25ec958
jmp 0x51f769
mov dword [esp + 0x32c], 0x1bb1a9f2
jmp 0x51f769
mov eax, dword [esp + 0x344]
mov dword [esp], eax
call fcn.00524610
mov eax, dword [eax]
mov dword [esp + 0x340], eax
mov dword [esp + 0x32c], 0x7684e582
jmp 0x51f769
mov eax, dword [esp + 0x344]
mov dword [esp], eax
call fcn.0052c9f0
mov byte [eax], 1
mov dword [esp + 0x32c], 0x3a05300b
jmp 0x51f769
mov eax, dword [esp + 0x350]
mov ecx, 0x3ffff
mov ecx, esp
lea edx, [esp + 0x338]
call fcn.0051f880
mov ecx, 0x7f
mov ecx, eax
call fcn.00502d10
sub esp, 4
mov eax, dword [esp + 0x348]
mov dword [esp], eax
call fcn.00512b10
mov dword [esp], eax
call fcn.004d6ef0
mov ecx, esi
mov ecx, esp
mov dword [ecx], eax
lea ecx, [esp + 0x338]
call fcn.0052d000
sub esp, 4
mov eax, dword [esp + 0x350]
mov ecx, 0x447cd8
mov ecx, esp
lea edx, [esp + 0x330]
call fcn.0051f890
mov ecx, esi
mov ecx, eax
call fcn.00502d10
sub esp, 4
mov eax, dword [esp + 0x348]
mov ecx, esp
mov dword [ecx], eax
call fcn.0051f8a0
lea ecx, [esp + 0x330]
call fcn.0049d560
sub esp, 8
mov eax, 0
mov ecx, 0x614550a
mov edx, 0xf528cc5b
mov esi, dword [esp + 0x350]
cmp eax, dword [esi + 4]
cmovb ecx, edx
mov dword [esp + 0x32c], ecx
jmp 0x51f769
mov eax, 0
mov ecx, dword [esp + 0x350]
mov edx, dword [ecx + 4]
add eax, 1
sub edx, eax
mov dword [ecx + 4], edx
mov dword [esp + 0x32c], 0x614550a
jmp 0x51f769
mov eax, dword [esp + 0x350]
mov ecx, dword [esp + 0x31c]
mov edx, dword [ecx]
mov esi, esp
mov dword [esi + 4], eax
mov dword [esi], edx
mov ecx, dword [esp + 0x318]
call fcn.004e51d0
sub esp, 8
mov ecx, dword [esp + 0x314]
mov dword [esp + 0x18], eax
mov eax, ecx
lea esp, [ebp - 8]
pop esi
pop ebx
pop ebp
ret 8
mov eax, dword [esp + 0x33c]
mov dword [esp], eax
call fcn.004e0b70
mov eax, dword [eax]
mov dword [esp], eax
call fcn.004e0b50
mov dword [esp + 0x32c], 0x8e11cb73
mov dword [esp + 0x14], eax
jmp 0x51f769
mov eax, dword [esp + 0x340]
mov dword [esp], eax
call fcn.00502cf0
mov dword [esp + 0x32c], 0x484d1ea9
mov dword [esp + 0x10], eax
jmp 0x51f769
mov eax, dword [esp + 0x340]
mov dword [esp], eax
call fcn.004e0b70
mov eax, dword [eax]
mov dword [esp + 0x33c], eax
mov eax, dword [esp + 0x33c]
mov dword [esp], eax
call fcn.0052c9f0
mov dword [esp + 0x32c], 0xcd05e782
mov dword [esp + 0xc], eax
jmp 0x51d1c6